Привет All. Помогите кто сможет. Есть dataserv.dll в которой объявлена ф-я:
| Код | const TDataForOPCServer * PASCAL GetDataForOPCServer( void );
|
Возвращаемый тип это структура следующего формата :
| Код | #pragma pack(push, 1) // Важно!!! Байтовое выравнивание
struct TAnTag { char *name; // Динамический размер переменной float value; unsigned int OpcQuality; };
struct TDataForOPCServer { unsigned char dataIsValid; unsigned short anTagsQnty; // количество эл-ов в anTagsArray const TAnTag *anTagsArray; // указатель на массив TAnTag
unsigned short structVersionNumber; char DeviceName[64]; char Reserved[128]; }; #pragma pack(pop)
|
Вопрос. Как в VB описать соответствующую структуру для приема данных возвращаемых функцией GetDataForOPCServer() ? Попробовал следующий вариант типа, но вызов функции вываливается в ошибку:
| Код | Option Explicit Type TAnTag namef As String value As Single OpcQuality As Long End Type
Type TDataForOPCServer dataIsValid As Byte anTagsQnty As Integer anTagsArray() As TAnTag structVersionNumber As Integer devicename(64) As Byte resrved(128) As Byte End Type Declare Function GetDataForOPCServer Lib "dataserv.dll" () As TDataForOPCServer
Sub MyMacro() Dim dOPC As TDataForOPCServer dOPC = GetDataForOPCServer() End Sub
|
|