Вам потребуется использовать пространство имен System.Runtime.InteropServices с Platform Invoke, если код c ++ не управляется или COM.Вам нужно будет определить структуру в вашем приложении на C # и передать объект любого типа, которым является ваша структура, в метод, который вы используете с помощью Platform Invoke.Чтобы рассказать вам больше, мне нужно увидеть несколько файлов заголовков.
Вот пример:
c ++ header:
struct MyStruct
{
int size;
char* data;
}
bool MethodToInvoke(MyStruct* obj);
c # декларации:
struct MyStruct
{
int size;
string data;
}
[DllImport("YourDllHere.dll")]
static extern bool MethodToInvoke(ref MyStruct obj);
Конечно, это может быть намного сложнее, но это общая идея.
Это может и может стать очень неприятным, когда вам приходится беспокоиться о вызовах соглашений и маршалинг массивов.Независимо от того, мир должен видеть какой-то код от вас.