2017-06-07 7 views
2

Je voulais créer un nouveau projet du même code que le paquet de code standard kinect v2.
J'ai créé un nouveau projet dans Visual Studio et ajouté la copie des fichiers exemples de l'autre projet dans un nouveau répertoire et je l'ai ajouté à mon projet.
J'ai également ajouté tous les en-têtes etc.
Ensuite, essayez de le compiler et cela fait beaucoup d'erreurs! mais cela fonctionne bien dans le projet d'exemple.
les fichiers CPP et les en-têtes sont tous les mêmes.
Alors qu'est-ce qui ne va pas?
J'ai chargé les répertoires Inclure dans les répertoires VC++ à $ (KINECTSDK20_DIR) \ inc; $ (IncludePath) et certaines erreurs s'enfuient mais il y a toujours des erreurs!
Ce sont les erreurs:
Comparer la différence de deux projets C++ dans VS

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' 

désolé pour mon mauvais anglais Grammer à l'avance!

+0

Sans ces erreurs, il est impossible de dire ce qui se passe. –

+0

Comparez les deux .vcxproj (et .props s'il y en a) avec un outil – Ceros

+0

@BartekBanachewicz Comment puis-je vous montrer l'ensemble du projet? –

Répondre

0

Votre projet n'a certainement pas le bon jeu de caractères. Vous pouvez trouver comment le changer here.

Un cadeau mort est beaucoup de cannot convert 'WCHAR *' to 'LPCSTR' et similaire. WCHAR* est LPWSTR. LPWSTR va se convertir en LPCWSTR , mais pas en LPCSTR - cela signifie généralement qu'un littéral à caractères larges est transmis à la fonction qui se transforme en une version à caractères étroits dans les paramètres de projet en cours.

Un projet soigneusement écrit peut être compilé sous les deux réglages, mais la plupart du temps, un seul d'entre eux est utilisé et en tant que tel doit être choisi correctement avant la construction.


Vous pouvez passer non-const où const est nécessaire, mais vous ne pouvez pas changer le type de caractère pointé.