Поделиться через


Ошибка компилятора C3385

"класс::функция": функция с пользовательским аргументом DllImport не может возвращать экземпляр класса

Функция, определенная как находящаяся в DLL-файле, указанная с атрибутом DllImport , не может возвращать экземпляр класса.

В следующем примере возникает ошибка C3385:

// C3385.cpp
// compile with: /clr /c
using namespace System;
using namespace System::Runtime::InteropServices;

struct SomeStruct1 {};

public ref struct Wrap {
   [ DllImport("somedll.dll", CharSet=CharSet::Unicode) ]
   static SomeStruct1 f1([In, Out] SomeStruct1 *pS);   // C3385
};