Объявление указателя в C # - PullRequest
       1

Объявление указателя в C #

0 голосов
/ 13 февраля 2019

Это может быть глупый вопрос для начинающих, но я не понимаю его.У меня есть DLL, которая объявляет функцию

int get_state(const unsigned char n,unsigned int *state)

Что такое оператор импорта C #?

public static extern int get_card(byte n,ref uint state);
[DllImport(@"my.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]

правильно?

И при использовании этой функции как мне нужно вызвать get_card(), чтобы получить данные из возвращенного параметрав state?

Спасибо!

1 Ответ

0 голосов
/ 13 февраля 2019

Ну, DllImportAttribute необходимо поставить перед описанным методом:

public static class MyClass {
   ...
   // Since you don't use String, StringBuilder etc. 
   // CharSet = CharSet.Ansi is redundant and can be omitted
  [DllImport(@"my.dll", CallingConvention = CallingConvention.Cdecl)]
   public static extern int get_card(byte n, ref uint state);
   ...
}

После объявления метода get_card вы можете использовать его как обычно, как и любой другой метод(и .Net будет маршалл аргументы):

...
byte n = 123;
uint state = 456;

int result = MyClass.get_card(n, ref state);  
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...