Cette question est une combinaison des questions et des problèmes spécifiques de Windows C +. C++ définit deux types de chaînes, régulières et larges. C++ définit
Une chaîne régulière ressemble:
const char *str = "regular string";
alors qu'une grande chaîne ressemble:
const wchar_t *wstr = L"wide string";
Avec juste C++ standard, vous devez décider quand vous écrivez votre bibliothèque si vous souhaitez utiliser des chaînes régulières ou larges.
Windows a défini un pseudo-type appelé tchar. Avec TCHAR vous écrivez quelque chose comme:
LPCTSTR tstr = _T("regular or wide string");
Que ce soit en fait un régulier (char *) ou une chaîne large (wchar_t *) dépend si vous compilez votre code pour Unicode ou non.
Étant donné que la fonction est spécifiée en tant que LPCTSTR, elle doit être appelée avec le type approprié pour la façon dont vous compilez.
Si vous savez que vous ne construisez qu'avec ou sans support Unicode, vous pouvez ignorer tous les éléments TCHAR et utiliser directement wchar_t ou char. Comme CFileImageLoader("Splash02.png")
ne fonctionne pas, vous devez compiler avec le support Unicode activé. Vous pouvez changer cela en CFileImageLoader(L"Splash02.png")
et vous engager à toujours utiliser Unicode ou vous pouvez le changer en CFileImageLoader(_T("Splash02.png"))
et laisser la magie des macros faire le travail.
En quoi ne fonctionnent-ils pas? Quel message d'erreur obtenez-vous? – ChrisN
La question doit être clarifiée: cherchez-vous un moyen de convertir CString en LPCTSTR? – rec
ne fonctionne pas ou ne compile pas? – Benny