3 pièce(s) jointe(s)
	
	
		Migration 2005 ->2008 : 'char *' to 'LPWSTR'
	
	
		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 :
   
	Code:
	
| 12
 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 | 
 J'ai parcouru les 3 fichiers du SDK concernés et il y a le typedef suivant :
	Code:
	
 typedef __nullterminated WCHAR *NWPSTR, *LPWSTR, *PWSTR;
 puis
	Code:
	
#define LMSTR   LPWSTR
 et un typedef struct :
	Code:
	
| 12
 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; | 
 Le compilateur n'admet pas donc pas le cast d'un wchar_t en WCHAR.
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.