导出函数定义:
extern "C" long _stdcall fun1(const char * szDeviceName,ITEMDEF &item,int devType,char* szDesc,int flag);
其中ITEMDEF为自定义结构体类型
建立的为扩展dll,dll仍由vc开发的程序调用
这个结构体需要在客户方也定义吗?
extern "C" long _stdcall fun1(const char * szDeviceName,ITEMDEF &item,int devType,char* szDesc,int flag);
其中ITEMDEF为自定义结构体类型
建立的为扩展dll,dll仍由vc开发的程序调用
这个结构体需要在客户方也定义吗?
否则很容易就会错误的。
2.在DLL实现中要定义结构
同时在使用DLL的地方也要定义,必须完全一致,否则可能产生异常.
extern "C" long _stdcall fun1(const char * szDeviceName,ITEMDEF &item,int devType,char* szDesc,int flag);
建议改成
long _stdcall fun1(const char * szDeviceName,PVOID pItem,int devType,char* szDesc,int flag)
{
ITEMDEF* pvItem = (ITEMDEF*)pitem;
..........
}
可还是产生了异常