【发布时间】:2012-07-30 22:01:32
【问题描述】:
这是它在第 33 页给我的代码:
#include<Windows.h>
int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE prevInstance,
LPWSTR cmdLine, int cmdShow)
{
UNREFERENCED_PARAMETER( prevInstance );
UNREFERENCED_PARAMETER( cmdLine );
WNDCLASSEX wndClass = { 0 };
wndClass.cbSize = sizeof( WNDCLASSEX ) ;
wndClass.style = CS_HREDRAW | CS_VREDRAW;
wndClass.lpfnWndProc = WndProc;
wndClass.hInstance = hInstance;
wndClass.hCursor = LoadCursor( NULL, IDC_ARROW );
wndClass.hbrBackground = ( HBRUSH )( COLOR_WINDOW + 1 );
wndClass.lpszMenuName = NULL;
wndClass.lpszClassName = "DX11BookWindowClass";
if( !RegisterClassEx( &wndClass ) )
return -1;
RECT rc = { 0, 0, 640, 480 };
AdjustWindowRect( &rc, WS_OVERLAPPEDWINDOW, FALSE );
HWND hwnd = CreateWindowA( "DX11BookWindowClass", "Blank Win32 Window",
WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, rc.right - rc.
left,
rc.bottom - rc.top, NULL, NULL, hInstance, NULL );
if( !hwnd )
return -1;
ShowWindow( hwnd, cmdShow );
return 0;
}
这段代码给了我 2 个错误-
1>----- 构建开始:项目:BlankWindow,配置:调试 Win32 ------ 1> main.cpp 1>c:\coding\c++\visual c++\directx\blankwindow\blankwindow\main.cpp(10): 错误 C2065: 'WndProc' : 未声明的标识符 1>c:\coding\c++\visual c++\directx\blankwindow\blankwindow\main.cpp(15):错误 C2440:'=': 无法从 'const char [20]' 转换为 'LPCWSTR' 1> 类型 指出是不相关的;转换需要 reinterpret_cast, C 风格转换或函数风格转换 ========== 构建:0 成功,1 失败,0 最新,0 跳过 ==========
基本上
'WndProc' : 未声明的标识符和 '=' : 不能从 'const 转换 char [20]' 到 'LPCWSTR'
这段代码有什么问题?
【问题讨论】:
-
我将代码放入问题中(而不是使用外部链接)。另外,
page 33指的是什么?你的WndProc在哪里?你知道windows procedure 是什么吗? -
不,我应该在 DirectX 之前知道 WinAPI 吗?
-
@GreyerSting:好吧,既然 DirectX 应用程序根据定义是 windowed,那么了解 windows 的工作原理可能是个好主意;)
-
@GreyerSting:如果您对 WinAPI 和 C++ 没有很好的理解,那么您将很难使用 DirectX。 DirectX 庞大而复杂,仅设置样板代码就需要几百行。
标签: c++ visual-studio compiler-errors