У меня есть файл .DLL и .h. Я использую c #, но .DLL написан на C ++. У меня проблема с вызовом определенной функции в .DLL. Проблема возникает, когда мне нужно вызывать функции с определенными в них типами. Например, include с .DLL был файлом .h, и его тип определен следующим образом:
struct device_info {
HANDLE dev_handle; // valid open handle or NULL
wchar_t* product_string; // malloc'd string or NULL
wchar_t* serial_string; // malloc'd string or NULL
};
typedef struct device_info *PDEV_INFO;
Я попытался запустить его и создал такую структуру:
[StructLayout(LayoutKind.Sequential)] public struct PDEV_INFO
{
unsafe void* dev_handle;
unsafe char* product_string;
unsafe char* serial_string;
}
Моя программа просто падает, я пытаюсь использовать любой из этих типов. Как бы я определил эти типы в C # или как я могу ссылаться на типы из файла .h? Еще лучше были бы типы, определенные где-то в .DLL, и я просто не знаю. Спасибо.