Как передать структуру struct из библиотеки DLL C# в C++ ?
public struct person { string name; string age; string job; } public struct management { Person employee; int count_of_employee; } public interface ICallmyClass { void Test(); management[] GetData { get; } } public class myclass : ICallmyClass { management[] st; int Count = 0; public management[] GetData { get { return st; } } public void Test() { st = new management[3]; st[0].person.name = "Jone1"; st[0].person.age = "21"; st[0].person.job = "engineer1"; st[0].count_of_employee = ++Count; st[1].person.name = "Jone2"; st[1].person.age = "22"; st[1].person.job = "engineer2"; st[1].count_of_employee = ++Count; st[2].person.name = "Jone3"; st[2].person.age = "23"; st[2].person.job = "engineer3"; st[2].count_of_employee = ++Count; } }
int main(int argc, char* argv[]) { ConInitialize(NULL); ICallmyClass *csi = NULL; HRESULT hr = CoCreateInstance(CLSID_MYCLASS, NULL, CLSCTX_INPROC_SERVER, IID_ICALLMYCLASS,reinterpret_cast
Привет, у меня есть кое-что в моей программе..
Я разрабатываю простую программу о вызове библиотеки C# в среде C++.
Итак, я сделал библиотеку dll c# в visual studio и включил ее в проект c++. и я попытался вернуть параметр из библиотеки dll c# о string, integer.
Но я хочу попытаться получить массив структуры" управление " из библиотеки dll c#. Поэтому я скомпилировал в проекте c++, это была ошибка при вызове функции "SafeArrayAccessData".
Сообщение об ошибке было примерно таким. "это - & gt;getData ((LPSAFEARRAY*) & pRetVal); либо предыдущий формат, либо неправильная библиотека типов "
Что такое программа в моем коде??...
кто-нибудь знает об этой проблеме?
Что я уже пробовал:
Я попробовал поискать в гугле. но у него все еще нет никаких решений..
и я нашел похожие ответы в codeproject.com
http://www.codeproject.com/Questions/134062/C-dll-C-client-pass-array-parameter
http://www.codeproject.com/Articles/16206/Call-C-code-from-C-and-read-an-array-of-struct-whi
http://www.codeproject.com/Articles/637320/Modifying-an-array-of-structures-default-marshalin
http://www.codeproject.com/Answers/134347/C-dll-C-client-pass-array-parameter#answer2
но у него все та же ошибка.
Philippe Mori
Почему вы не используете C++/CLI (mixed mode C++) вместо этого?