Ceci est la question d'un débutant: Lorsque je créé un projet de cadre wxWidgets, et au point que je dois ajouter #include dans une fonction, j'ai eu une telle erreur du compilateur:C: B question du compilateur avec projet wxWidgets
C:\wxWidgets-2.9.4\include\wx\msw\winundef.h||In function 'HWND__* CreateDialog(HINSTANCE, LPCTSTR, HWND, DLGPROC)':|
C:\wxWidgets-2.9.4\include\wx\msw\winundef.h|39|error: cannot convert 'LPCTSTR {aka const char*}' to 'LPCWSTR {aka const wchar_t*}' for argument '2' to 'HWND__* CreateDialogParamW(HINSTANCE, LPCWSTR, HWND, DLGPROC, LPARAM)'|
C:\wxWidgets-2.9.4\include\wx\msw\winundef.h||In function 'HFONT__* CreateFont(int, int, int, int, int, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, LPCTSTR)':|
C:\wxWidgets-2.9.4\include\wx\msw\winundef.h|70|error: cannot convert 'LPCTSTR {aka const char*}' to 'LPCWSTR {aka const wchar_t*}' for argument '14' to 'HFONT__* CreateFontW(int, int, int, int, int, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, LPCWSTR)'|
C:\wxWidgets-2.9.4\include\wx\msw\winundef.h||In function 'HWND__* CreateWindow(LPCTSTR, LPCTSTR, DWORD, int, int, int, int, HWND, HMENU, HINSTANCE, LPVOID)':|
C:\wxWidgets-2.9.4\include\wx\msw\winundef.h|95|error: cannot convert 'LPCTSTR {aka const char*}' to 'LPCWSTR {aka const wchar_t*}' for argument '2' to 'HWND__* CreateWindowExW(DWORD, LPCWSTR, LPCWSTR, DWORD, int, int, int, int, HWND, HMENU, HINSTANCE, LPVOID)'|
C:\wxWidgets-2.9.4\include\wx\msw\winundef.h||In function 'HMENU__* LoadMenu(HINSTANCE, LPCTSTR)':|
C:\wxWidgets-2.9.4\include\wx\msw\winundef.h|112|error: cannot convert 'LPCTSTR {aka const char*}' to 'LPCWSTR {aka const wchar_t*}' for argument '2' to 'HMENU__* LoadMenuW(HINSTANCE, LPCWSTR)'|
C:\wxWidgets-2.9.4\include\wx\msw\winundef.h||In function 'HWND__* FindText(LPFINDREPLACE)':|
C:\wxWidgets-2.9.4\include\wx\msw\winundef.h|127|error: cannot convert 'LPFINDREPLACE {aka FINDREPLACEA*}' to 'LPFINDREPLACEW {aka FINDREPLACEW*}' for argument '1' to 'HWND__* FindTextW(LPFINDREPLACEW)'|
C:\wxWidgets-2.9.4\include\wx\msw\winundef.h||In function 'HICON__* LoadIcon(HINSTANCE, LPCTSTR)':|
C:\wxWidgets-2.9.4\include\wx\msw\winundef.h|312|error: cannot convert 'LPCTSTR {aka const char*}' to 'LPCWSTR {aka const wchar_t*}' for argument '2' to 'HICON__* LoadIconW(HINSTANCE, LPCWSTR)'|
C:\wxWidgets-2.9.4\include\wx\msw\winundef.h||In function 'HBITMAP__* LoadBitmap(HINSTANCE, LPCTSTR)':|
C:\wxWidgets-2.9.4\include\wx\msw\winundef.h|325|error: cannot convert 'LPCTSTR {aka const char*}' to 'LPCWSTR {aka const wchar_t*}' for argument '2' to 'HBITMAP__* LoadBitmapW(HINSTANCE, LPCWSTR)'|
P:\c++\codeblocks\UDP SOCKET COM\Communication.cpp||In function 'void ConnectUDP()':|
P:\c++\codeblocks\UDP SOCKET COM\Communication.cpp|7|warning: unused variable 's' [-Wunused-variable]|
||=== Build finished: 7 errors, 1 warnings (0 minutes, 1 seconds) ===|
Voici les codes:
#include <winsock2.h>
#include <wx/msgdlg.h>
#include <wx/string.h>
void ConnectUDP(){
SOCKET s;
int result;
WSADATA wsaData;
//initialize winsock
result = WSAStartup(MAKEWORD(2,2), &wsaData);
if(result != NO_ERROR){
wxMessageBox("WSAStartup failed with error: " + wxString::Format(wxT("%i"),result));
}
}
Cela se produit uniquement sur c: b, je n'ai pas de problème avec wxDev ou vs2015
Eh bien, le compilateur dit "char n'est pas wchar_t", ce qui ne devrait pas surprendre. Probablement il y a des discordances 'TCHAR', extraire un exemple minimal. –
Y a-t-il un correctif que je peux faire du côté du compilateur? Je veux toujours rester avec c: b. Merci. – Jacob
Tout d'abord, se faire une idée des différentes choses que peut être TCHAR. Deuxièmement, le problème n'est pas avec l'IDE. Ce n'est même pas avec le compilateur! Au contraire, c'est un problème dans le code source et il devrait être trivial à corriger. –