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

为一个对话框加一个菜单,能通过调试,但是运行时崩溃,求解析,代码如下
C/C++ code
#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;
-----------
这里错了~