首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

替一个对话框加一个菜单,能通过调试,但是运行时崩溃,求解析,代码如下

2013-03-26 
为一个对话框加一个菜单,能通过调试,但是运行时崩溃,求解析,代码如下本帖最后由 VisualEleven 于 2012-09-

为一个对话框加一个菜单,能通过调试,但是运行时崩溃,求解析,代码如下
本帖最后由 VisualEleven 于 2012-09-04 13:02:49 编辑

#include<windows.h>
#include"resource.h"

BOOL CALLBACK DlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
DialogBox(hInstance,MAKEINTRESOURCE(IDD_DIALOG1),NULL,DlgProc);

return 0;
}

BOOL CALLBACK DlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
HINSTANCE hInstance = ((LPCREATESTRUCT)lParam)->hInstance;
HMENU hMenu;

switch (message)
{
case WM_INITDIALOG:
        hMenu = LoadMenu(hInstance,MAKEINTRESOURCE(IDR_MENU1));
    SetMenu(hDlg,hMenu);
return TRUE;

case WM_COMMAND:
switch (LOWORD(wParam))
{
case IDOK:
return TRUE;

case IDCANCEL:
EndDialog(hDlg,0);
return TRUE;
}
break;
}
return FALSE;
}

[解决办法]
DialogBox(hInstance,MAKEINTRESOURCE(IDD_DIALOG1),NULL,DlgProc);

是不是崩溃在这。我感觉有问题。不过具体怎么写,有点忘记了,要去查下MSDN
[解决办法]
你怎么调试的, 直接按 F5 吗?运行时崩溃的 同样是 debug版本吗?

要不你试试,在main开始处加一个MessageBox,然后就有机会 附加到进程了,然后此时呢?


[解决办法]
HINSTANCE hInstance = ((LPCREATESTRUCT)lParam)->hInstance;
-----------
这里错了~

热点排行