это мой первый пост здесь!
Я пытаюсь создать программу для форм Windows, используя C #, которая будет использовать предварительно скомпилированную библиотеку C. Он получит доступ к смарт-карте и предоставит вывод с нее.
Для библиотеки у меня есть .dll, .lib и .h и нет источника. В файле .h определено несколько структур. Большинство интересных функций .dll ожидают, что указатели будут распределять структуры в качестве аргументов. Я вызывал функции внутри .dll так: например, функция
EID_API int WINAPI EidStartup(int nApiVersion);
будет называться так
[DllImport("CelikApi.dll")]//the name of the .dll
public static extern int EidStartup(int nApiVersion);
Теперь моя проблема в том, что я не могу найти эквивалент указателей C, которые указывают на динамически распределенные структуры в памяти в C #, поэтому я не знаю, что передать в качестве аргумента функциям, которые принимают указатели C.
У меня нет большого опыта работы с C #, но для меня его использование выглядело как самый простой способ создания нужной мне программы. Я пытался с C ++, но Visual Studio 2010 не имеет IntelliSense для C ++ / CLR. Если вы можете указать мне на что-то лучшее, не стесняйтесь.