C4113警告是什么意思 问:请问下面的警告是什么意思? warning C4113: 'int (__stdcall *)()' differs in parameter lists from 'int (__stdcall *)(struct HWND__ *,unsigned int ,unsigned int ,long )' 警告的行是这个样子的: DialogBox(hInst,MAKEINTRESOURCE(DATAENTRYBOX),hDlg,lpprocDataEntry); 答 1)文档中DialogBox的声明是这样的: int DialogBox( HINSTANCE hInstance, LPCTSTR lpTemplate, HWND hWndParent, DLGPROC lpDialogFunc ); DLGPROC的是这样定义的: typedef BOOL (CALLBACK* DLGPROC)(HWND, UINT, WPARAM, LPARAM); 这样看来,你的lpprocDataEntry声明不正确,并不是希望中的四个参数,当然会发 生这 种不愉快的事情了。 2)这只是一个可能的原因,没有看过你的代码,不好下结论,是不是你的lpprocDataEntry 函 数指针的类型是int (__stdcall *)()?文档说明指出DialogBox的最后一个参数 应该是这样: BOOL CALLBACK DialogProc(HWND hwndDlg, // handle to dialog box UINT uMsg, // message WPARAM wParam, // first message parameter LPARAM lParam // second message parameter); 如果你给的四个类型是int (__stdcall *)(struct HWND__ *,unsigned int , unsigned int ,long ), 那么警告是有道理的,你应当改成正确的参数。