调用DLL文件出错

szkxy 2003-02-27 04:47:57
我的DLL文件如下:
library ToolLib;
SysUtils,
Classes;

{$R *.res}
function Three(SourceResult:Integer):String;stdCall;
begin
if SourceResult>0 then
Result:=IntToStr(SourceResult*3) //结果存放于Result
else
Result:=IntToStr(SourceResult);
end;
Main文件如下:

function Three(SourceResult:Integer):String;
StdCall external 'ToolLib.DLL';
...
begin
Showmessage(Three(3));
end;
...
当显示'9'之后就会出错:"invalid pointer operation"
...全文
33 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiume 2003-02-27
  • 打赏
  • 举报
回复
Pchar
szkxy 2003-02-27
  • 打赏
  • 举报
回复
我知道了,要把ShareMem放在dpr文件Uses列表的第一个位置.
szkxy 2003-02-27
  • 打赏
  • 举报
回复
我在两个文件里都用了uses ShareMem,但现在当关闭窗口的时候还是会出现那个错误.
szkxy 2003-02-27
  • 打赏
  • 举报
回复
可以了,不好意思!刚看了ShareMem的帮助.
bewill 2003-02-27
  • 打赏
  • 举报
回复
居然用String?
仔细看看String的结构。
szkxy 2003-02-27
  • 打赏
  • 举报
回复
是在我的Main文件里Uses sharemem吗?
nzh517 2003-02-27
  • 打赏
  • 举报
回复
同意思,最好不要用string做参数和返回值,试试看能不能用PChar代替.
Hickey 2003-02-27
  • 打赏
  • 举报
回复
同意楼上
uses
sharemem;
Linux2001 2003-02-27
  • 打赏
  • 举报
回复
老大,你新建DLL的时候没有看到注释告诉你在DLL中不要用string作为函数的返回值吗,要用你需要包含DelphiMM这个单元吗

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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