2017-06-07 60 views
2

我想创建一个与kinect v2标准代码串相同代码的新项目。
我在Visual Studio中创建了一个新项目,并将其他项目的示例文件的副本添加到新目录中,并将其添加到我的项目中。
此外,我添加了所有标题等
然后尝试编译它,它会犯很多错误!但它在示例项目中工作正常。
CPP文件和标题都是一样的。
那么会出现什么问题?
我将VC++目录中的Include目录加载到$(KINECTSDK20_DIR)\ inc; $(IncludePath),并且一些错误消失了,但仍然存在错误!
这些都是错误的:
比较VS中两个C++项目的差异

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

将两个.vcxproj(和.props,如果有的话)与一个工具进行比较 – Ceros

+0

@BartekBanachewicz我如何向您展示整个项目? –

回答

0

您的项目肯定有错误的字符集设置。你可以找到如何改变它here

一个死的赠品是很多cannot convert 'WCHAR *' to 'LPCSTR'和类似的。 WCHAR*LPWSTRLPWSTR将转换为LPCWSTR ,但不是LPCSTR - 这通常意味着将宽字符文字传递给在当前项目设置下解析为窄字符版本的函数。

一个精心编写的项目可以在两种设置下编译,但大多数时候只有其中一个被使用,因此必须在构建之前正确选择。


您可以通过在需要一个const非const,但不能更改字符类型指向。