Предположим следующее:
Давайте получим класс C ++:
class ExampleClass
{
private:
int var1;
public:
void DoSomething();
}
Предположим также следующую функцию C ++, которую мы хотим вызвать из приложения .NET Core с помощью PInvoke или с помощью EmitCalli:
extern "C" ExampleClass CreateObject()
Итак, функция C ++ возвращает экземпляр класса ExampleClass по значению.Есть ли способ получить этот экземпляр на управляемой части в виде байтового массива (при условии, что размер ExampleClass известен).
Как я помню, в большинстве нативных соглашений о вызовах x86 (x64) функции C ++, которые возвращают структуры, фактически имеют указатель на структуру для заполнения в качестве одного из параметров.Будет ли этот совет работать с NET Core: выделить байтовый массив в управляемой части и передать указатель в качестве первого параметра для неуправляемого вызова?
Спасибо!