2
我希望从ASP Classic访问DLL的功能,我的理解是,COM是要走的路。与DLL相关复杂的C++数据类型和COM
的.H头文件看起来是这样的:
...
struct _Data;
typedef struct _Field
{
INT iType;
BOOL bChanged;
INT iFieldId;
INT iInternalFieldId;
INT iLenght;
INT iDec;
RW iRW;
union
{
DOUBLE d;
CHAR* s;
LONG l;
BOOL b;
LONG date;
struct _Data* data;
}
value;
} FIELD;
typedef struct _MetaData
{
HANDLE hHandle;
INT iDatabaseId;
INT iFields;
INT iStructSize;
} META;
typedef struct _Data
{
META metaData;
FIELD rgField[MAX_FIELD];
} DATA, *PDATA;
...
#ifdef __cplusplus
extern "C"
{
#endif //__cplusplus
__declspec(dllexport) P_DATA __stdcall CreateData(INT iDatabaseId);
__declspec(dllexport) ERROR __stdcall GetStr(DATA* pData, INT iFieldId, CHAR** ppsValue, INT iLen);
...
因此,大家可以看到函数本身那么简单,但数据是相当复杂的。
我应该如何去为COM服务器定义这样的数据类型?
感谢,
巴里