问题一:IntelliSense: 错误地终止了宏调用
解决:在使用CreateWindow时多了一个(
问题二:
问题三:利用Win32模拟窗口创建时,报错:
错误 1 error C2275: “HWND”: 将此类型用作表达式非法
错误 3 error C2065: “hWnd”: 未声明的标识符
解决方法: 必须将HWND hWnd;这个定义放在WinMain的最前面。。。。。还不太明白为什么这样子。
最好是所有变量都要放在最前面。。
问题四:
用VC6.0手写Windows窗口时,报错:
error LNK2001: unresolved external symbol _main
解决:
Project -->Settings–> Link -->Project Options
: 将/subsystem:console改成/subsystem:windows解决。。
问题五: 手写MFC窗口程序时 创建Win32项目时,报错:
错误 1 error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCRTStartup 中被引用
解决:属性-》常规-》MFC的使用:由使用Windows标准库更改为:在共享DLL中使用共享MFC。
问题六:
VS2010 创建一个单文档,MFC标准的程序,在CMainFrame::OnCreate下
CMenu *menu = GetMenu();
返回的menu为空
【解决】查找MainFrm中 m_wndMenuBar 与这个变量有关的程序均要屏蔽掉,这样子之后 menu指针就不为空啦。!真的好坑啊,用高版本的VS应该没有这个问题。
问题7:
在视图中
CMenu *menu = GetMenu();
CMenu *SubMenu = menu->GetSubMenu(0);
时执行第二行就会崩溃。
解决办法: 重新加载子菜单项,然后在获取就可以啦。
//重新加载菜单项,//视图.cpp中 鼠标左键按下,弹出子菜单项
CMenu mee;
mee.LoadMenuW(IDR_NEW_MENU);
CMenu *SubMenu = mee.GetSubMenu(0);
ClientToScreen(&point);
SubMenu->TrackPopupMenu(TPM_CENTERALIGN | TPM_LEFTBUTTON,point.x,point.y,this);
问题8: 使用条件编译达到注释的目的
#if 0
…
#endif
条件编译,中间代码被屏蔽了,达到了注释的目的
问题9: c1xx 中第一行 出错
C1083 Cannot open source file: ‘…S\OSVersion.cpp’: No such file or directory ExportExcel … \c1xx 1
由于怎么找c1xx都找不到这个文件,最后发现程序解决方案目录中,有2个OSVersion.cpp 两个OSVersion.h
、去掉一对就可以了。
问题10 : LINK : fatal error LNK1104: cannot open file ‘.\ExportExcel.def’
将 工程属性中 link- input-- module definition file 中后面的内容去掉就行。
问题11: 使用NDEBUG来进行区分debug与release版本
对vs来说,只有release下NDEBUG才有此宏定义,。
#ifdef NDEBUG//release模式下
#pragma comment(lib, “…/bin/HighSpeedCapture.lib”)
#else//debug模式下
#pragma comment(lib, “…/bin/HighSpeedCapture_d.lib”)
#endif