为了更好的学习MFC,所以我是从空白页开始编写MFC,没有让编译器自动生成一大堆代码。
解决方案只有一个cpp文件,内容如下:
1 #include <Windows.h> 2 LRESULT CALLBACK wndProc(HWND, UINT, WPARAM, LPARAM); 3 4 int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hPrevinstance, 5 LPSTR lpCmdline, UINT nCmdshow) 6 { 7 WNDCLASS wndCls; 8 wndCls.lpszClassName ="New Class"; 9 wndCls.hInstance =hinstance; 10 wndCls.lpfnWndProc =wndProc; 11 12 RegisterClass(&wndCls); 13 14 HWND hwnd=CreateWindow(wndCls.lpszClassName,"NEW CPT", 15 0,0,0,0,0,0,0,hinstance,0); 16 ShowWindow(hwnd,0); 17 UpdateWindow(hwnd); 18 MSG msg; 19 while(GetMessage(&msg,nullptr,0,0)!=WM_QUIT) 20 { 21 TranslateMessage(&msg); 22 DispatchMessage(&msg); 23 } 24 return msg.wParam; 25 26 } 27 28 LRESULT CALLBACK wndProc(HWND hwnd, UINT message, WPARAM wpa, LPARAM lpa) 29 { 30 switch(message) 31 { 32 case WM_KEYDOWN: 33 MessageBox(hwnd,"Hello","msg",0); 34 break; 35 } 36 return 0; 37 }
然而提示错误如下:
敢问大神问题在哪,不解。
注:这个项目中没有任何多余文件或元素,只有这一个代码页。
从这个链接中得到一些启发,编译器提示我错误的入口函数(WinMain)重载,那么应该就是指的这个在MFC中隐藏着一个_tWinMain函数
并且#define _tWinMain() WinMain()
可以我查找外部依赖项并没有找到这个APPMODUL.h模块,那么究其原因在哪里呢?
后来查阅了《基于Visual C++ 的MFC编程》一书后,找到问题所在。
上述代码属于SDK编程范畴,而不是MFC 编程,MFC编程的最大贡献就是把基于API的繁琐编程封装到了MFC的类库里,从而加速了程序猿开发的效率。
本题已结,谢谢浏览。