为什么MFC不会在single-modual(.cpp)VS PROJECT中加载位图资源



我的代码最初是用Visual C++1.52版本开发的(工作和自学(。我现在正试图将它转换为Visual Studio项目。它是一个使用MFC编写的单模块项目。我使用了"来自现有代码的项目"选项来生成执行良好但用于加载位图资源的项目。我在MFC多模块项目代码中测试了相同的相关代码(LoadBitmap和LoadImage(,它们运行得很好。我可以直接从磁盘加载位图文件。如果我从项目中删除位图文件,代码的大小会减少22k。位图文件的总大小为18k。我得到的唯一错误消息是未定义'_WIN32_WINNT。默认为_WIN32_WINNT_MAXVER(请参阅WinSDKVer.h('。我认为默认值足够。在这一点上,我认为这是一个链接属性的问题,因为MFC,但我不知道这可能是什么。有什么想法吗?非常感谢。

//header
//
class CMainWindow : public CFrameWnd
{
public:
CMainWindow();
//{{AFX_MSG( CMainWindow )
afx_msg void OnPaint();
afx_msg void OnDestroy();
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
//}}AFX_MSG
//protected:
BOOL    flag;
BOOL    game, turn;
CWnd    tictic1, tictic2, tictic3, tictic4, tictic5, tictic6, tictic7, tictic8, tictic9;
CRect   RCT;
int     id, count;
CBitmap O, X;
//body
//
CMainWindow::CMainWindow()
{
LoadAccelTable("MainAccelTable");
Create(NULL, "Tic Tac Toe",
WS_OVERLAPPEDWINDOW, rectDefault, NULL, NULL, 0, NULL);
flag = TRUE;
id = 0;
O.LoadBitmap(IDB_BITMAP1);
X.LoadBitmap(IDB_BITMAP2);

如果我将相关代码移植到VS生成的MFC文档中,它就可以工作了。唯一的区别是,我的所有代码都是原始的Visual C++版本1.52 MFC代码,在一个.cpp文档中,但其余代码似乎都能正常工作。

嗯,当我为这个查询收集观察结果时,我从资源中删除了两个相关的位图文件,以便报告文件大小的差异。在我将它们重新添加到中之后,这些函数就可以正常工作了。我想我最初所做的是,当第一次导入新资源时,我尝试将两者选为一组,当它们显示在资源文件中时,我认为它已经起作用了。显然没有。啊!

呃,发展;清理完代码后,我重新构建了它,它不会加载位图资源。我删除了这些资源,然后重新安装了它们,程序从此开始工作。所以你告诉我,我认为这是偶然的。啊!

相关内容

最新更新