std::wstring problem oder auch C3385
- 
					
					
					
					
 hallo ich hab folgendes problem: 
 wenn ich per dllimport eine unmanaged c++ dll einbinde[DllImport("m3_globalsd.dll", EntryPoint = "?GetM3ProgramRootDirectory@M3_OPT_DirectoryOptions@@QBE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ", CharSet=CharSet::Unicode)] extern std::wstring GetM3ProgramRootDirectory();dann mault er mir an dem "std::wsting" rum Error 1 error C3385: 'M3_VersionLinks_managed::GetM3ProgramRootDirectory' : a function that has a DllImport custom attribute cannot return an instance of a class Main.cpp 24 ich hab keine ahnung was ich tun muss oder sollte. 
 vll kann mir jm einen stupps in die richtige richtung geben
 Gruß KY
 
- 
					
					
					
					
 Hallo, So wie ich das sehe (ohne das genau überprüft zu haben) geht das so nicht. 
 Der std::wstring ist für den managed Teil unbekannt.
 Was Du erreichen möchtest (glaube ich), ist ein marshalling von std::wstring nach System::String. Das funktioniert aber nicht direkt, sondern über char, bzw. wchar_t.Da Du ja in C++/CLI entwickelst kannst Du ja die Methode GetM3ProgramRootDirectory so umschreiben, dass eben ein System::String zurückgegeben wird. Das eigentlich Marshalling wird dann in dieser Funktion durchegführt. Vielleicht hilft Dir das weiter... Darf ich fragen, warum Du ausgerechnet mit C++/CLI programmierst? 
 (Wenn Du nämlich sowiso P/Invoke als Interp. Möglichkeit benützt, könntest Du auch C# oder VB.NET verwenden. Das würde es ev. ein wenig einfacher / verständlicher machen.)Simon 
 
- 
					
					
					
					
 c++/cli hat sich einfach angeboten. 
 des problem ist, dass ich die dll nicht einfach ändern kann, da diese von einigen anderen großen programmteilen, die nicht in c++/cli geschreiben sind verwendet wird, die ich nicht änder kann. kann ich diese funktion dann irgendwie in meinem code umbiegen oder hab ich da gar keine changse?
 Gruß KY
 
- 
					
					
					
					
 Du musst einfach das mit dem "DllImport" weglassen und die Include-Datei einbinden! 
 
- 
					
					
					
					
 ok des problem ist da sind CString und solche faxen drin an denen der compiler rummault 