У меня есть два компонента связи - один управляемый, другой неуправляемый.Управляемому необходимо извлечь символьную строку из неуправляемой реализации (ту же строку или просто копию).Я попробовал следующий код.
// Unmanaged code
const char* GetTestName(Test* test)
{
return test->getName();
}
// Managed wrapper
[DllImport(DllName, EntryPoint = "GetTestName")]
public static extern IntPtr GetTestName(IntPtr testObj);
// API Invocation
IntPtr testName = GetTestName(test);
string testStr = Marshal.PtrToStringAuto(testName);
Но значение testStr не соответствует ожидаемому.Кто-нибудь знает, что я здесь делаю не так?Любые предложения будут очень полезны.