wise installation system 9.01中调用DLL函数遇到麻烦。请专家出手解决!(100分)

  • 主题发起人 主题发起人 dadabox
  • 开始时间 开始时间
D

dadabox

Unregistered / Unconfirmed
GUEST, unregistred user!
我用wise installation system 9.01来打包我的程序,其中要调用我的DLL来判断产品序号。
我需要调用我自己写的一个DLL,但老是通不过。而为我要传参数到DLL中去。
DLL中检查序号的函数。
function CheckNo(SerialNo:PChar):Char;
var sSerialNo: string;
begin
sSerialNo := CreateCustomerNo;
//取得客户编号
if SerialNo = GetDes(sSerialNo) then
//判断输入的序号与加密后的客户号是否一致
begin
Result := #1;
MessageDlg('序列号正确!', mtInformation, [mbOK], 0);
end
else
begin
MessageDlg('你输入了错误的序列号,请确定无误后再试!', mtWarning, [mbOK], 0);
Result := #0;
end;
end;

在wise installation system 9.01中调用DLL函数部分,我是选择的下面"使用变量参数表
调用函数",我只需要添加一个参数进去。定义如下:
类型:string pointer
通过类型:包含于结构内 (我查看了帮助,只有这个符合,调用其它两种就出内存不能读错误)
值来源:变量
变量名称:INPUTSERIALNO(我自己定义的一个变量)
但是通过调用,我发现传进去的值都是空的,没有值。当然也就没法与我DLL中的值比较,
不如怎么解决。请各位打包专家帮助解决。请示一DLL例及传参数说明,有效即给分。
另外:如果我判断非法,怎样又返回到上一个表单让用户继续序号。
如果哪位朋友有类似的例子,能发给我借鉴,定感激不尽。300大分另贴双手奉上。
 
我用WISE9 做BDE的安装程序时 发现WISE9 可以设置安装文件自动检查比对版本号
和版本时间
 
可我不是比对版本号呀,我是想调用DLL函数,却发现传进去的参数有问题。不知王大侠有
没有用过这一着。
 
我传不带参数的DLL,一点问题都没有。但加上参数就出内存不能读错误!我真的是没辙了,
难道各位都没有用过这种方法吗?我仔细地看了帮助,也是照着上面要求的类型传入写的,
却还是有这错误。
 
加上 stdcall;
试试
 
同意楼上stdcall
 
就象OopsWare说的:
function CheckNo(SerialNo:PChar):Char;
stdcall;
 
多谢!犯了一个低级错误。
 

Similar threads

回复
0
查看
978
不得闲
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
后退
顶部