Использование DllImport
От: taper  
Дата: 10.02.05 17:18
Оценка:
Есть dll (писаная на С++) и my.h файл к ней.
В my.h описано примерно следующее:
#define DECLARE_APIHANDLE(name) \
struct name##__ { int unused; }; \
typedef struct name##__ *name

DECLARE_APIHANDLE(MESSAGECOLLECTION);

MESSAGECOLLECTION Session_GetMessages(SESSION hSession)
{
OBJECT __hThis = (OBJECT)hSession;
return (MESSAGECOLLECTION)ApiGetProperty(__hThis, "Messages");
}

Как в C# описать MESSAGECOLLECTION ?

Правилен ли следующий вариант:

// описание класса
public class MessageCollection
{
public int unused;
}

// описание вызова метода из dll
[DllImport("some.dll", EntryPoint="GetMessages", SetLastError=true,
CharSet=CharSet.Unicode, ExactSpelling=true,CallingConvention=CallingConvention.StdCall)]
private static extern MessageCollection Session_GetMessages(Session hSession);
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.