我想创建一个与kinect v2标准代码相同代码的新项目
我在Visual Studio中创建了一个新项目,并将另一个项目的示例文件副本添加到一个新目录中,并将其添加到我的项目中。
我还添加了所有标题等
然后尝试编译它,它会产生很多错误!但它在示例项目中工作正常
CPP文件和标题都是一样的
那有什么不对呢?
我将VC ++目录中的Include目录更改为$(KINECTSDK20_DIR)\ inc; $(IncludePath)并且一些错误消失但仍有错误!
这些是错误:
HCURSOR LoadCursorW(HINSTANCE,LPCWSTR)
HICON LoadIconW(HINSTANCE,LPCWSTR)
'=': cannot convert from 'const wchar_t [25]' to 'LPCSTR'
'ATOM RegisterClassW(const WNDCLASSW *)': cannot convert argument 1 from 'WNDCLASS *' to 'const WNDCLASSW *'
'HWND CreateDialogParamW(HINSTANCE,LPCWSTR,HWND,DLGPROC,LPARAM)': cannot convert argument 2 from 'LPSTR' to 'LPCWSTR'
'HRESULT StringCchPrintfA(STRSAFE_LPSTR,std::size_t,STRSAFE_LPCSTR,...)': cannot convert argument 1 from 'WCHAR [64]' to 'STRSAFE_LPSTR'
'BOOL SetDlgItemTextA(HWND,int,LPCSTR)': cannot convert argument 3 from 'WCHAR *' to 'LPCSTR'
提前抱歉我的英语语法不好!
答案 0 :(得分:0)
您的项目肯定有错误的字符集设置。您可以找到如何更改它here。
死亡赠品有很多cannot convert 'WCHAR *' to 'LPCSTR'
和类似的。 WCHAR*
是LPWSTR
。 LPWSTR
将转换为LPCWSTR
1 ,但不转换为LPCSTR
- 这通常意味着将宽字符文字传递给解析为a的函数当前项目设置下的窄字符版本。
精心编写的项目可以在两种设置下进行编译,但大部分时间只使用其中一项,因此必须在构建之前正确选择。
1 你可以在需要const的地方传递非const,但你不能改变指向的字符类型。