Bonjour,
Je dois migrer un projet de Visual Studio 2005 à 2008 (avec un changement de la version du SDK de V5 à V6.0A) et il y a un bout de code qui ne compile plus :
J'ai parcouru les 3 fichiers du SDK concernés et il y a le typedef suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 wchar_t WDirectoryToShare[MAX_PATH]; wchar_t WSharename[MAX_PATH]; swprintf_s(WDirectoryToShare,L"%S",DirectoryToShare); swprintf_s(WSharename,L"%S",Sharename); si502.shi502_netname = (char *)WSharename; // ici erreur de compilation si502.shi502_max_uses = SHI_USES_UNLIMITED; si502.shi502_current_uses = 0; si502.shi502_path = (char *)WDirectoryToShare; // ici erreur de compilation
puis
Code : Sélectionner tout - Visualiser dans une fenêtre à part typedef __nullterminated WCHAR *NWPSTR, *LPWSTR, *PWSTR;
et un typedef struct :
Code : Sélectionner tout - Visualiser dans une fenêtre à part #define LMSTR LPWSTR
Le compilateur n'admet pas donc pas le cast d'un wchar_t en WCHAR.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 typedef struct _SHARE_INFO_502 { LMSTR shi502_netname; DWORD shi502_type; LMSTR shi502_remark; DWORD shi502_permissions; DWORD shi502_max_uses; DWORD shi502_current_uses; LMSTR shi502_path; LMSTR shi502_passwd; DWORD shi502_reserved; PSECURITY_DESCRIPTOR shi502_security_descriptor; } SHARE_INFO_502, *PSHARE_INFO_502, *LPSHARE_INFO_502;
Il met 2 erreurs de compilation du type :
error C2440: '=' : cannot convert from 'char *' to 'LPWSTR'
Que dois-je faire alors ?
J'ai joint les 3 fichiers du SDK concernés.
Merci.
Tapiou.
Partager