有关inno setup 调用dll问题

qipeng3875 2013-07-22 02:38:31
inno中调用dll代码
function ValidateSN(pname:pchar):Boolean;
external 'ValidateSN@c:\ValidateSN.dll cdecl';
inno中调用函数代码
ResultCode:=ValidateSN(SNString);

c++中生成dll(非mfc)时的函数定义方式
extern "C" BOOL __declspec(dllexport) ValidateSN(char* cszSerialNumber)
{
//检验
string strSerialNumber=cszSerialNumber;
if (!OnBnClickedButtonTest(strSerialNumber))
{
return FALSE;
}
return TRUE;

}

请问这种情况下在inno中调用ValidateSN为什么会报错呢,错误为访问为例,是我参数传错了呢,还是我调用方式有问题啊?
...全文
899 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
粗手摸大米 2015-02-11
  • 打赏
  • 举报
回复
怎么解决。。???
bowfnfje 2014-07-24
  • 打赏
  • 举报
回复
求解。。。。。。。。。。。。。。谢谢
w_storm 2014-06-25
  • 打赏
  • 举报
回复
我也出现这个问题 你是怎么解决的?
qipeng3875 2013-07-22
  • 打赏
  • 举报
回复
SNString 怎么定义的,char数组还是pchar还是string

定义的是pchar,方法中第一句定义的就是。这个问题我已经解决了。
原因是外面调用的dll的函数校验出了问题。

可是马上我又发现了另外一个问题:
function WriteSN2Exe(pname:pchar;pname2:pchar):Boolean;
external 'WriteSN2Exe@files:ValidateSN.dll cdecl';
当我把dll中第二个函数也加上的时候,inno编译通过,但是会报这个dll无法导入的错误。
明明声明一个是没问题的,为什么同样的添加,第二个的时候就会出现问题了呢,请问有谁知道吗?

sololie 2013-07-22
  • 打赏
  • 举报
回复
SNString 怎么定义的,char数组还是pchar还是string external 'MyDllFunc@files:MyDll.dll stdcall setuponly';
雄牛 2013-07-22
  • 打赏
  • 举报
回复
没搞过调用DLL的...

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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