D
Hier mal ein Beispiel:
Aus der Header-Datei der Bibliothek:
DLL_API const TCHAR* catFnameToHhsDir( const TCHAR* fname );
Mein Code:
CString pathToUser;
pathToUser.Format(_T("%s.usr"), catFnameToHhsDir(userName));
userName ist ebenfalls CString.
Ausgabe des Linkers:
... : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""__declspec(dllimport) wchar_t const * __cdecl catFnameToHhsDir(wchar_t const *)" (__imp_?catFnameToHhsDir@@YAPB_WPB_W@Z)" in Funktion "__unwind$76548".
Als Lösungsmöglichkeit, kann ich natürlich die Header-Datei umdefinieren in
DLL_API const unsigned int* catFnameToHhsDir( const unsigned short* fname );
Nur dann bekomme ich natürlich Ärger mit dem CString Geraffel.
Bei Verwendung des /Zc:wchar_t Schalters gibt es dann solche Meldungen:
...: error LNK2001: Nicht aufgelöstes externes Symbol ""public: void __cdecl CWnd::SetWindowTextW(unsigned short const *)" (?SetWindowTextW@CWnd@@QAAXPBG@Z)".
...
... : error LNK2001: Nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: class ATL::CStringT<unsigned short,class StrTraitMFC_DLL<unsigned short,class ATL::ChTraitsOS<unsigned short> > > __cdecl ATL::CStringT<unsigned short,class StrTraitMFC_DLL<unsigned short,class ATL::ChTraitsOS<unsigned short> > >::Left(int)const " (__imp_?Left@?$CStringT@GV?$StrTraitMFC_DLL@GV?$ChTraitsOS@G@ATL@@@@@ATL@@QBA?AV12@H@Z)".