Я использую dll C++ в проекте Unity3D. It`s важно использовать НаборСимволов = CharSet.AnsiUnity3d CharSet.Ansi
[DllImport("Exchange3D", EntryPoint = "GetElementValue", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
private static extern double fnGetElementValue(int nType, int nNumber, string strPointName);
strPointName отправляется в библиотеку DLL. Но DLL получает его в неправильном формате в проекте Unity!
Но я создал приложение C# Console с тем же кодом, и все работает!
Любые идеи?
Я думаю, что это может помочь вам: http://stackoverflow.com/questions/20752001/passing-strings-from-c-sharp-to-c-dll-and-back-minimal-example – ThomasSquall