Вызов C ++ с использованием подписи метода DLLImport, необходимой для пользовательских типов, файлов и указателей - PullRequest
0 голосов
/ 28 сентября 2018

В C # с DLLImport необходимо вызывать переменную C ++ и указатели.

Пользовательские типы:

 typedef unsigned char UN_Char;
 typedef enum { Valid = 0, Invalid = 1, Unknown = -999 } AppResponseCode; 

Вызывается в SomeAPI.C

 static AppResponseCode SomeFunction(UN_Char ** vUC1PtrPtr,size_t * vSize1Ptr, UN_Char * vUC2Ptr,size_t vSize2, FILE *  inputFile, char * vcharPtr)

Теперь мне нужно вызвать функцию C ++ из C #.

Как только яПопытка создать ссылку не удалась с сообщением

Ссылка на '..... \ SomeApi.DLL' не может быть добавлена.Пожалуйста, убедитесь, что файл доступен, и что он является действительной сборкой или компонентом COM

Поэтому я иду другим путем, чтобы импортировать DLL с помощью DLLImport, но здесь у меня нет подписи для вызывающего C ++Функция

[DllImport("SomeAPI.dll", CharSet = CharSet.Unicode)]
public static extern ?AppResponseCode? SomeFunction( ?????emphasized text ) ;

Может ли кто-нибудь помочь мне определить подпись функции?

...