pinvoke: неизвестно, как работать с dllimport и импортированными библиотеками - PullRequest
0 голосов
/ 04 февраля 2009

Я делаю dllImport на dll C ++, и у меня есть следующая подпись. До сих пор StackOverflow был очень полезен, поэтому я подумал, что брошу этот и посмотрю, что получу.

Есть ли какие-то ошибки, о которых мне следует беспокоиться? Я впервые использую dllimport.

Мне нужно импортировать следующее в C #:

HANDLE FooInit (char * name); // имя выглядит как строка "COM1"

int Foo1 (дескриптор HANDLE, const char ** предложение); // предложение выглядит как строка "Hello World"

int Foo2 (дескриптор HANDLE, DWORD * val);

Большое спасибо!

Ответы [ 2 ]

4 голосов
/ 04 февраля 2009

Ознакомьтесь с P / Invoke шпаргалкой (не полный, но краткий справочник). char * обычно становится строкой. const char ** сложнее, поскольку я не могу понять, глядя на него, является ли это указателем на одну строку или массивом строк.

0 голосов
/ 04 февраля 2009

На первый взгляд, я ожидаю, что вы будете использовать IntPtr для всех ваших параметров и типа возвращаемого значения HANDLE, а int для возвращаемых значений Foo1 и Foo2.

...