vc 调用delphi dll遇到的异常

toucheme 2013-01-25 09:03:26
要调用一个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异常。
求大神!
...全文
433 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
莫凡的博客 2013-01-27
  • 打赏
  • 举报
回复
delphi 定义接口有问题 Function ReadUser_RFS(str_RunKey: String;UserApply: PUserApply;UserReturn: PUserReturn;Var i_Error: Integer):Boolean;stdcall; external 'LKWMRF.dll'; str_RunKey: String 要定义为 :str_RunKey: Pchar
蓝色光芒 2013-01-25
  • 打赏
  • 举报
回复
UserNO : String[6]; = C中的 { byte bSize; char szUserNO[6]; } 在C里面多定义一个字节,并且在赋值后,把长度写入第一个字节即可
hsfzxjy 2013-01-25
  • 打赏
  • 举报
回复
用DELPHI再写个DLL,调用那个接口,并把string改成PChar
toucheme 2013-01-25
  • 打赏
  • 举报
回复
引用 1 楼 HSFZXJY 的回复:
我勒个去!写DLL那个人有问题吧,明知string是DELPHI专有的还将它定义到接口!这个DLL只供DELPHI使用
引用 2 楼 kiboisme 的回复:
String[6]; //用户号 改成 :array [0..5] of AnsiChar; 其他同样改
现在我没有dll的源码,我能不能直接在外面套一层,把接口换了?
蓝色光芒 2013-01-25
  • 打赏
  • 举报
回复
String[6]; //用户号 改成 :array [0..5] of AnsiChar; 其他同样改
hsfzxjy 2013-01-25
  • 打赏
  • 举报
回复
我勒个去!写DLL那个人有问题吧,明知string是DELPHI专有的还将它定义到接口!这个DLL只供DELPHI使用

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧