Я вызываю метод C# из функции C++.Возвращает строку из метода C# функции C++ в аргументе вывода
методC# необходимо сделать следующее:
- Выделяет
BSTR
и вернуть его в функцию C++ в выходном аргументе - возвращающих
HRESULT
функции C++ через стек (по возвращаемому значению)
я реализовал метод C# следующим образом:
int Method(out IntPtr output)
{
int status = 0;
...
output = Marshal.StringToBSTR(someString);
...
return status;
}
Вопросы:
- Какой вариант типа я должен использовать в C++, который соответствует
out IntPtr
типа в C#? - Есть ли какой-нибудь другой тип в C#, который я должен использовать вместо этого, чтобы вернуть
BSTR
? - Если да, то какой тип C# это, и что представляет собой соответствующий тип C++-типа?
Я пробовал несколько типов вариантов, перечисленных here, но ни один из них не работал.
Является ли код C++ C# DLL в качестве COM-компонента? или вы пишете C++/CLI? – Matt
@Matt: первый вариант. –