首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

delphi调用dll有关问题

2012-04-03 
delphi调用dll问题本人用delphi编写一dll,再用delphi调用,结果出现问题如下:1:生成dll代码(计算一个字符串

delphi调用dll问题
本人用delphi编写一dll,再用delphi调用,结果出现问题如下:
1:生成dll代码(计算一个字符串的长度)

Delphi(Pascal) code
Function  Mykey_len(key:string):string;stdcall;var  keylen:string;begin   keylen:=inttostr(length(key));   result:=keylen;end;


2:调用此dll的代码如下
Delphi(Pascal) code
var  Form1: TForm1;  Function  Mykey_len(keybegin:string):string;stdcall;external 'Mykey.dll';implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);begin edit2.Text:=Mykey_len(edit1.Text);end;


运行后点击按钮总是显示
Project project1.exe raised exception class EInvalidPointer with message 'Invalid pointer operation'.
Process stopped. Use Step or Run to continue.
请大家帮忙解析一下,谢谢了

[解决办法]
没发现什么问题,试着做一下改动

Delphi(Pascal) code
{$R *.res}  exports  Mykey_len;调换一下  exports  Mykey_len;{$R *.res}
[解决办法]
楼主,我用你的代码运行,一切正常啊。
楼主留个邮箱,我把我编译的代码和文件发给你吧。

探讨
原本我的动态库是取字符串的长度,再根据长度的不同取出字符串的一部分,再用一定的规则进行加密,并且将加密后的密钥(字符串)返回。
但是我的程序运行的时候出现上面的问题,所以我就把功能不断的简化,最好简化成上面这样依旧有问题,所以请大家帮忙看一下,我把我目前的代码全部贴出来,如下
1:Dll的代码

Delphi(Pascal) code

library Mykey;

{ Impo……

热点排行