2017-06-07 55 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,但不能更改字符類型指向。