刚刚做了DLL,里面包含一个字符串解密的函数,在程序中引用这个函数时总是返回“Invalid pointer operation”。但将此函数直接放到程序中却不会报错。不知是什么原因?恳请大师指点。下面的DLL文件:
library Demo;uses
SysUtils,
Classes;function Decrypt(S:String;Key1,Key2:Word):String; StdCall;
var
I,j:Integer;
TmpStr : String;
begin
Result := '';
for I:=1 to (length(S) div 2) do
begin
j:=(Integer(S[2*i-1])-65)*26;
j:=j+(Integer(S[2*i])-65);
Result := Result + Char(j);
end;
TmpStr := Result;
for I:=1 to Length(TmpStr) do
begin
Result[I] := Char(Byte(TmpStr[I]) xor (Key1 shr 8));
Key1 := (Byte(TmpStr[I]) + Key1) * Key1 + Key2;
end;
end;exports
Decrypt;
begin
end.
library Demo;uses
SysUtils,
Classes;function Decrypt(S:String;Key1,Key2:Word):String; StdCall;
var
I,j:Integer;
TmpStr : String;
begin
Result := '';
for I:=1 to (length(S) div 2) do
begin
j:=(Integer(S[2*i-1])-65)*26;
j:=j+(Integer(S[2*i])-65);
Result := Result + Char(j);
end;
TmpStr := Result;
for I:=1 to Length(TmpStr) do
begin
Result[I] := Char(Byte(TmpStr[I]) xor (Key1 shr 8));
Key1 := (Byte(TmpStr[I]) + Key1) * Key1 + Key2;
end;
end;exports
Decrypt;
begin
end.
解决方案 »
- 请问 我用delphi7 用rave制作报表,我想在打印预览时,在报表上点右键,将报表导出到excel电子表格里。请指点!
- 光盘自动运行!!
- length(一个widestring)怎么会有异常?
- 各位我需要代理服务器的源码,需能代理TCP及UDP类的各种协议。分数给得很高!
- 怎样实现table中特定字段的查找??高手帮忙呀!
- 奇怪,怎么不能用
- 关于paradox问题
- delphi服务程序里关闭外部的exe程序
- 我在上台湾的网站时,显示的是乱吗,有没有解决的方法,大家看看。!
- 关于程序启动时增加登录窗口的问题
- 江湖救急:Delphi严重Bug,TADOConnection在线程内创建,TEdit控件不能切换输入法!
- 请问手写板为何在开发的应用程序上写不上汉字?在其他字处理软件上能写上。分不多了。
Delphi 200x?没试过,你可以看一下帮助。
在以前需要带上 borlndmm.dll 的,所以我想当然的,delphimm.dll 也需要带上。--
http://agui.net.googlepages.com
mailto: agui.cn @ gmail.com