函数在调用之前必须声明啊有木有,忘记了这个就等于忘掉了老本。
LRESULT CALLBACK DlgProc(HWND hDlgMain,UINT uMsg,WPARAM wParam,LPARAM lParam);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd){
DialogBox(hInstance,MAKEINTRESOURCE(IDD_DIALOG),NULL,(DLGPROC)DlgProc);//(DLGPROC)
return 0;
}
即使winmain
里面的dlgproc
调用的时候只有函数名,也必须声明
一下啊,否则会出现下面的报错
C:\VC6\MyProjects\PortTest\portmain.cpp(10) : error C2065: 'DlgProc' : undeclared identifier
C:\VC6\MyProjects\PortTest\portmain.cpp(14) : error C2373: 'DlgProc' : redefinition; different type modifiers
还有看到有关__in__
这些变量名的,其实就是用了#define __in__ NULL
来定义的,就是为了便于理解查看,其实有没有这个真的无所谓。
但是,像下面的这种情况
-
__in__ cout<<"hello"<<endl;
通过 -
NULL cout<<"hello"<<endl;
不能通过
为什么呢。
这是因为在define
是宏定义,在编译的时候会替换成文本,但是在宏定义结果为null 或者0
时,编译预处理的时候会忽略,编译时不存在。所以第一个可以通过,第二个等于说在编译预处理后还有null存在了,因此无法编译通过。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。