当我键入此,我没有得到我的计算机上的一个空白窗口显示:空白窗口应用程序不显示?
#define WIN32_LEAN_AND_MEAN
#include<Windows.h>
bool InitMainWindow(HINSTANCE, int);
LRESULT CALLBACK MsgProc(HWND, UINT, WPARAM, LPARAM);
const int WIDTH=800;
const int HEIGHT=600;
HWND hwnd=NULL;
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdline, int mCmdShow)
{
if(!InitMainWindow(hInstance,mCmdShow))
return 1;
MSG msg={0};
while(WM_QUIT!=msg.message)
{
if(PeekMessage(&msg,0,0,0,PM_REMOVE))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
return static_cast<int>(msg.wParam);
}
bool InitMainWindow(HINSTANCE hInstance, int mCmdShow)
{
WNDCLASSEX wcex;
wcex.cbSize=sizeof(wcex);
wcex.style=CS_HREDRAW|CS_VREDRAW;
wcex.cbClsExtra=0;
wcex.cbWndExtra=0;
wcex.lpfnWndProc=MsgProc;
wcex.hInstance=hInstance;
wcex.hIcon=LoadIcon(NULL,IDI_APPLICATION);
wcex.hCursor=LoadCursor(NULL,IDC_ARROW);
wcex.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);
wcex.lpszClassName = (LPCWSTR)"tutorialClass";
wcex.lpszMenuName=NULL;
wcex.hIconSm=LoadIcon(NULL,IDI_WINLOGO);
if(!RegisterClassEx(&wcex))
return false;
hwnd=CreateWindow((LPCWSTR)"tutorial class",
(LPCWSTR)"tutorial window",
WS_OVERLAPPED | WS_SYSMENU |WS_CAPTION,
GetSystemMetrics(SM_CXSCREEN)/2-WIDTH/2,
GetSystemMetrics(SM_CYSCREEN)/2-HEIGHT/2,
WIDTH,
HEIGHT,
(HWND)NULL,
NULL,
hInstance,
(LPVOID*)NULL);
if(!hwnd)
return false;
ShowWindow(hwnd, mCmdShow);
return true;
}
LRESULT CALLBACK MsgProc(HWND hwnd, UINT msg,WPARAM wParam,LPARAM lParam)
{
switch(msg)
{
case WM_DESTROY:
PostQuitMessage(0);
return 0;
case WM_CHAR:
switch(wParam)
{
case VK_ESCAPE:
PostQuitMessage(0);
return 0;
}
return 0;
}
return DefWindowProc(hwnd, msg ,wParam,lParam);
}
在的Visual Studio 2010 Express Edition的,我收到以下错误和警告:
'WindowBlank.exe': Loaded 'C:\Users\ramapriya\Documents\Visual Studio 2010\Projects\WindowBlank\Debug\WindowBlank.exe', Symbols loaded.
'WindowBlank.exe': Loaded 'C:\Windows\SysWOW64\ntdll.dll', Cannot find or open the PDB file
'WindowBlank.exe': Loaded 'C:\Windows\SysWOW64\kernel32.dll', Cannot find or open the PDB file
'WindowBlank.exe': Loaded 'C:\Windows\SysWOW64\KernelBase.dll', Cannot find or open the PDB file
'WindowBlank.exe': Loaded 'C:\Windows\SysWOW64\user32.dll', Cannot find or open the PDB file
'WindowBlank.exe': Loaded 'C:\Windows\SysWOW64\gdi32.dll', Cannot find or open the PDB file
'WindowBlank.exe': Loaded 'C:\Windows\SysWOW64\lpk.dll', Cannot find or open the PDB file
'WindowBlank.exe': Loaded 'C:\Windows\SysWOW64\usp10.dll', Cannot find or open the PDB file
'WindowBlank.exe': Loaded 'C:\Windows\SysWOW64\msvcrt.dll', Cannot find or open the PDB file
'WindowBlank.exe': Loaded 'C:\Windows\SysWOW64\advapi32.dll', Cannot find or open the PDB file
'WindowBlank.exe': Loaded 'C:\Windows\SysWOW64\sechost.dll', Cannot find or open the PDB file
'WindowBlank.exe': Loaded 'C:\Windows\SysWOW64\rpcrt4.dll', Cannot find or open the PDB file
'WindowBlank.exe': Loaded 'C:\Windows\SysWOW64\sspicli.dll', Cannot find or open the PDB file
'WindowBlank.exe': Loaded 'C:\Windows\SysWOW64\cryptbase.dll', Cannot find or open the PDB file
'WindowBlank.exe': Loaded 'C:\Windows\SysWOW64\msvcr100d.dll', Symbols loaded.
'WindowBlank.exe': Loaded 'C:\Windows\SysWOW64\imm32.dll', Cannot find or open the PDB file
'WindowBlank.exe': Loaded 'C:\Windows\SysWOW64\msctf.dll', Cannot find or open the PDB file
'WindowBlank.exe': Loaded 'C:\ProgramData\Browser Manager\2.6.1125.80\{16cdff19-861d-48e3-a751-d99a27784753}\browsemngr.dll', Cannot find or open the PDB file
'WindowBlank.exe': Loaded 'C:\Windows\SysWOW64\shell32.dll', Cannot find or open the PDB file
'WindowBlank.exe': Loaded 'C:\Windows\SysWOW64\shlwapi.dll', Cannot find or open the PDB file
'WindowBlank.exe': Loaded 'C:\Windows\SysWOW64\ole32.dll', Cannot find or open the PDB file
'WindowBlank.exe': Loaded 'C:\Windows\SysWOW64\oleaut32.dll', Cannot find or open the PDB file
'WindowBlank.exe': Loaded 'C:\Windows\SysWOW64\version.dll', Cannot find or open the PDB file
'WindowBlank.exe': Loaded 'C:\Windows\SysWOW64\imagehlp.dll', Cannot find or open the PDB file
'WindowBlank.exe': Loaded 'C:\Windows\SysWOW64\psapi.dll', Cannot find or open the PDB file
'WindowBlank.exe': Loaded 'C:\Windows\SysWOW64\uxtheme.dll', Cannot find or open the PDB file
The program '[7792] WindowBlank.exe: Native' has exited with code 1 (0x1).
有时在我的电脑上编译需要很长时间,因为它很慢。我不明白代码中有什么错误。我刚开始学习,我试着改变参数,顺序,重新输入所有内容,创建一个新项目,但空白窗口似乎没有出现。这是为什么?
我不知道这段代码有什么问题。或者有些图书馆可能缺失?我有Windows 7 64位家庭版,我也安装了DirectX 11 SDK。
尝试单步执行调试程序中的代码,查看是否有任何函数调用失败。如果他们这样做,请检查错误代码。 (另外,将一个char *转换为LPCWSTR的做法往往不太顺利。) – 2013-04-04 18:51:34
如果我在字符之前不给(LPCWSTR),它会给出一个错误。这就是我添加它的原因。还有什么我可以做的吗?没有它就不会编译。 – LoveMeow 2013-04-04 18:57:06
编译器告诉你,你正在传递错误类型的字符串。铸造不能解决这个问题。 – 2013-04-04 19:15:37