要调用一个delphi写的dll,接口函数如下
Type
TUserApply = Record
i_AreaCode: Integer; //分区号
str_UserNo: String[6]; //用户号
i_AlarmValue: Integer; //报警水量
i_InputValue: Integer; //充值限额
i_OverLimit: Integer; //透支限额
i_Times: Integer; //购水次数
i_Buy: Integer //本次购水量
End;
PUserApply = ^TUserApply; //购水卡返写区结构
Type
TUserReturn = Record
str_Mark: String[2]; //返写标志
i_Left: Integer; //剩余水量
e_SumUsed: Extended; //表累计用水量
str_State: String[2]; //水表工作状态字
End;
PUserReturn = ^TUserReturn;Function ReadUser_RFS(str_RunKey: String;UserApply: PUserApply;UserReturn: PUserReturn;Var i_Error: Integer):Boolean;stdcall; external 'LKWMRF.dll';我在c++中定义对应结构体
struct USER_CARD_INFO
{
int nAreaCode;//分区号
char szUserNO[6];//用户号
int nAlarm; //报警水量
int nUpperLimit;//充值限额
int nOverdraw;//透支限额
int nTime; //购水次数
int nBuy; //本次购水量};
typedef BYTE Extended[10];
struct USER_CARD_RETURN
{
char szMark[2];//返写标志
int nLeft;//剩余水量
Extended ldSumUsed;//表累计用水量
char szState[2];//水表工作状态字
};
typedef BOOL (__stdcall *PReadUser)(char*,USER_CARD_INFO*,USER_CARD_RETURN*,int&);
LoadLibrary,GetProcAddress后,调用,出现0xC0000005异常。
求大神!
Type
TUserApply = Record
i_AreaCode: Integer; //分区号
str_UserNo: String[6]; //用户号
i_AlarmValue: Integer; //报警水量
i_InputValue: Integer; //充值限额
i_OverLimit: Integer; //透支限额
i_Times: Integer; //购水次数
i_Buy: Integer //本次购水量
End;
PUserApply = ^TUserApply; //购水卡返写区结构
Type
TUserReturn = Record
str_Mark: String[2]; //返写标志
i_Left: Integer; //剩余水量
e_SumUsed: Extended; //表累计用水量
str_State: String[2]; //水表工作状态字
End;
PUserReturn = ^TUserReturn;Function ReadUser_RFS(str_RunKey: String;UserApply: PUserApply;UserReturn: PUserReturn;Var i_Error: Integer):Boolean;stdcall; external 'LKWMRF.dll';我在c++中定义对应结构体
struct USER_CARD_INFO
{
int nAreaCode;//分区号
char szUserNO[6];//用户号
int nAlarm; //报警水量
int nUpperLimit;//充值限额
int nOverdraw;//透支限额
int nTime; //购水次数
int nBuy; //本次购水量};
typedef BYTE Extended[10];
struct USER_CARD_RETURN
{
char szMark[2];//返写标志
int nLeft;//剩余水量
Extended ldSumUsed;//表累计用水量
char szState[2];//水表工作状态字
};
typedef BOOL (__stdcall *PReadUser)(char*,USER_CARD_INFO*,USER_CARD_RETURN*,int&);
LoadLibrary,GetProcAddress后,调用,出现0xC0000005异常。
求大神!
!dll名称错误 或者 getprocaddress的参数名称!
LoadLibrary GetProcAddress 执行都是正确的~问题肯定是处在参数那块了~我找了个参数简单的函数,执行是没问题的