Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/143.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Windows脚本主机在关闭创建的窗口时终止_C++_Vbscript_Wsh_Createwindowex - Fatal编程技术网

C++ Windows脚本主机在关闭创建的窗口时终止

C++ Windows脚本主机在关闭创建的窗口时终止,c++,vbscript,wsh,createwindowex,C++,Vbscript,Wsh,Createwindowex,我为CreateWindowEx API函数创建了一个包装函数,并从VBScript中使用它。这是VBScript: 调光结果,wcx10'变型阵列10-WNDCLASSEX wcx5=WINAPI.WINAPI_LoadIconNULL,32516'hIcon IDI_信息 wcx6=WINAPI.WINAPI_LoadCursorNULL,32649'hCursor IDC_HAND wcx7=3'hbrBackground COLOR\u ACTIVECAPTION+1 wcx9=虚拟_类

我为CreateWindowEx API函数创建了一个包装函数,并从VBScript中使用它。这是VBScript:

调光结果,wcx10'变型阵列10-WNDCLASSEX wcx5=WINAPI.WINAPI_LoadIconNULL,32516'hIcon IDI_信息 wcx6=WINAPI.WINAPI_LoadCursorNULL,32649'hCursor IDC_HAND wcx7=3'hbrBackground COLOR\u ACTIVECAPTION+1 wcx9=虚拟_类的lpszClassName wcx10=WINAPI.WINAPI_LoadIconNULL,32516’hIconSm与hIcon相同 '将变量数组传递给包装函数 结果=WINAPI.WINAPI\u注册表类xwcx 尺寸样式:样式=CLng&H00CF0000'WS\u重叠窗口 尺寸ExStyle:ExStyle=CLng&H0000100'WS_EX_WINDOWEDGE 如果CLngResult>0,则 '创建窗口 结果=WINAPI.WINAPI_CreateWindowExExStyle,DUMMY_类,Hello World!,样式,875,64000,300,空,空,空,空 WINAPI.WINAPI_显示窗口结果,5 Echo CreateWindowEx返回0x+CStrUCaseHexResult 如果结束 该窗口按预期创建并显示良好。但我想知道为什么当我单击创建的窗口的关闭按钮时Windows脚本主机终止

我用AutoIt测试了CreateWindowEx,当我关闭创建的窗口时,AutoIt3.exe没有终止,它继续运行脚本,不像Windows脚本主机

即使关闭创建的窗口,我也喜欢保持Windows脚本主机运行


我想知道Windows脚本主机出现这种情况的原因是什么。

我通过如下更改窗口过程修复了此问题:

LRESULT CALLBACK WindowProc(_In_ HWND hwnd, _In_ UINT uMsg, _In_ WPARAM wParam, _In_ LPARAM lParam) {

    switch (uMsg)
    {
        case WM_CLOSE:
            DestroyWindow(hwnd);
            break;

        /*FOLLOWING LINES WERE REMOVED:
        case WM_DESTROY:
            PostQuitMessage(0);
            break;*/

        default: return DefWindowProc(hwnd, uMsg, wParam, lParam);
    }
    return 0;
}
出现这个问题是因为我忘记了Windows脚本主机不是标准的WinForms应用程序,所以当窗口被破坏时,它不需要关闭