0
我已經通過鉑金在C++中創建了一個Windows應用程序。 當我運行這個應用程序,它會運行在命令提示符 現在,我想從Windows運行它,所以我管理它在Windows中運行 但問題是,我不能在命令提示符下運行應用程序和窗口同時。 它只允許我運行在Windows或命令提示符(不是兩個) 任何人都可以帶我到正確的路徑。Win32應用程序沒有在窗口中運行,但在控制檯中
我已經通過鉑金在C++中創建了一個Windows應用程序。 當我運行這個應用程序,它會運行在命令提示符 現在,我想從Windows運行它,所以我管理它在Windows中運行 但問題是,我不能在命令提示符下運行應用程序和窗口同時。 它只允許我運行在Windows或命令提示符(不是兩個) 任何人都可以帶我到正確的路徑。Win32應用程序沒有在窗口中運行,但在控制檯中
如果你需要一個控制檯和一個窗口,你可以啓動應用程序作爲控制檯之一,然後創建一個窗口與Windows API。
這裏舉例:
#include <iostream>
#include <windows.h>
long __stdcall WindowProcedure(HWND window, unsigned int msg, WPARAM wp, LPARAM lp)
{
switch(msg)
{
case WM_DESTROY:
std::cout << "\ndestroying window\n" ;
PostQuitMessage(0) ;
return 0L ;
case WM_LBUTTONDOWN:
std::cout << "\nmouse left button down at (" << LOWORD(lp)
<< ',' << HIWORD(lp) << ")\n" ;
// fall thru
default:
std::cout << '.' ;
return DefWindowProc(window, msg, wp, lp) ;
}
}
int main()
{
std::cout << "hello world!\n" ;
const char* const myclass = "myclass" ;
WNDCLASSEX wndclass = { sizeof(WNDCLASSEX), CS_DBLCLKS, (WNDPROC)WindowProcedure,
0, 0, GetModuleHandle(0), LoadIcon(0,IDI_APPLICATION),
LoadCursor(0,IDC_ARROW), HBRUSH(COLOR_WINDOW+1),
0, (LPCWSTR)myclass, LoadIcon(0,IDI_APPLICATION) } ;
if(RegisterClassEx(&wndclass))
{
HWND window = CreateWindowEx(0, (LPCWSTR)myclass, (LPCWSTR)"title",
WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT, 0, 0, GetModuleHandle(0), 0) ;
if(window)
{
ShowWindow(window, SW_SHOWDEFAULT) ;
MSG msg ;
while(GetMessage(&msg, 0, 0, 0)) DispatchMessage(&msg) ;
}
}
}
從this link採取的行動(和從其他地方取)
感謝您的快速輸入。 我試過了,按預期工作。 但我不認爲我可以通過這個API來設計。 你知道這件事嗎? –
很難知道你在問什麼,但我懷疑你想有一個應用程序,它可以是控制檯或GUI取決於它的啓動方式。那麼,這是不可能的。信息在PE元數據中編碼。標準解決方案是兩個可執行文件。示例包括java.exe/javaw.exe,python.exe/pythonw.exe –