BCCのコンソールアプリからウィンドウ表示
BCCのコンソールアプリからウィンドウを表示したいのですが、うまくいきません。
なにが悪いのでしょうか・・・
どなたかお教えいただけると助かります。
よろしくお願いいたします。
コンパイラ: Borland C++ 5.5.1 bcc32
コンパイル方法: bcc32 -WC WindowTest.cpp
(コンソールアプリにしているのは、標準入力を受け標準出力に出すフィルタ機能も持たせようと思っているからです。)
*** ソース (WindowTest.cpp) ***
#include <windows.h>
LRESULT CALLBACK WndProc ( HWND hWnd, UINT msg, WPARAM wp, LPARAM lp ){
// とりあえず空
(void)hWnd;
(void)msg;
(void)wp;
(void)lp;
return 0;
}
int main (int argc, char**argv){
HINSTANCE hInstance = (HINSTANCE)GetModuleHandle(NULL);
WNDCLASSEX wc;
char className[] = "hoge";
memset( &wc, 0, sizeof( wc ));
wc.cbSize = sizeof(WNDCLASSEX);
wc.style = 0;
wc.lpfnWndProc = WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon( NULL, IDI_APPLICATION );
wc.hCursor = LoadCursor( NULL, IDC_ARROW );
wc.hbrBackground = (HBRUSH)GetStockObject( WHITE_BRUSH );
wc.lpszMenuName = NULL;
wc.lpszClassName = className;
wc.hIconSm = NULL;
if(! RegisterClassEx( &wc )) return 1;
HWND hWnd = CreateWindow(className, "Title",
WS_OVERLAPPEDWINDOW | WS_VISIBLE,
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
HWND_DESKTOP, NULL,
hInstance, NULL); // ← ここで失敗し、ウィンドウが表示されない
if (!hWnd) return 2;
ShowWindow(hWnd, NULL);
UpdateWindow(hWnd);
MSG msg;
while (GetMessage(&msg, NULL, 0, 0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
(void)argc;
(void)argv;
return 0;
}
お礼
情報、ありがとうございます。