CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

dll调用后为何会出现这样的提示?

楼主SpeedyHorse(鑫磊)2006-03-17 10:07:35 在 Delphi / VCL组件开发及应用 提问

在DLL   unit里函数是这样的:  
  function   ShowTime():string;stdcall;  
  implementation  
  function   ShowTime():string;  
  begin  
      Result   :=DateToStr(Date());  
  end;  
   
  调用的时候是这样写的:  
  function   ShowTime():string;stdcall;external   'DllTest.dll';  
   
  procedure   TForm1.Button1Click(Sender:   TObject);  
  begin  
      ShowMessage(ShowTime());  
  end;  
   
  结果是:显示提示信息后出现这样的提示"Invalid   pointer   operation."  
  请大家帮忙看下 问题点数:50、回复次数:8Top

1 楼leeky(雅痞·千年虫)回复于 2006-03-17 10:23:20 得分 10

問題大約出在返回類型string上,  
  请试着改String为String[100],  
  我不想花時間去试,请自己試驗一下。Top

2 楼keiy()回复于 2006-03-17 10:32:31 得分 0

1.不要用string作为dll的参数或返回值,改用pchar  
  2.不要在dll中返回字串,改用参数Top

3 楼keiy()回复于 2006-03-17 10:40:08 得分 30

重写一下,供参考,DLL:  
  procedure   ShowTime(const   p:pchar);stdcall;  
  begin  
      strcopy(p,pchar(DateToStr(Date())));  
  end;  
  调用:  
  procedure   TForm1.Button1Click(Sender:   TObject);  
  var  
      p:pchar;  
  begin  
    getmem(p,100);  
    ShowTime(p);  
    ShowMessage(p);  
    freemem(p);  
  end;  
   
  Top

4 楼SpeedyHorse(鑫磊)回复于 2006-03-17 10:41:52 得分 0

楼上的兄台,能不能帮我上面的改下,我刚学用DLL,谢谢!Top

5 楼WangZWang(先来)回复于 2006-03-17 10:45:44 得分 10

在调用的单元中加入  
  uses   ShareMem;Top

6 楼SpeedyHorse(鑫磊)回复于 2006-03-17 10:48:13 得分 0

谢谢楼上的兄台,这样的可以,再请教一下,dll中能写函数吗?还是只能用过程?Top

7 楼keiy()回复于 2006-03-17 11:02:00 得分 0

当然可以写函数,不过最好不要返回字串变量,返回integer,double等不会有问题Top

8 楼SpeedyHorse(鑫磊)回复于 2006-03-17 11:09:04 得分 0

谢谢各位!Top

相关问题

  • 我在VB中调用VC下写的DLL为何总是提示:
  • DLL问题?“DLL 调用约定错误”提示。
  • 动态调用DLL出错为何?
  • 我动态调用DLL的函数出现如下提示
  • 100分 调用DLL文件错误提示:Exception:EResNotFound in Module DLL.dll at000318C4
  • 调用DLL出错,提示 unhandled exception in md5exe.exe (MD5DLL.DLL): 0xC0000005: Access Violation
  • 急问:vb调用Activex dll 出现如下提示?
  • VB调用DLL时出错,提示"bad dll calling convention"!!什么原因?
  • DLL的调用
  • dll的调用?

关键词

  • 函数
  • dll
  • 调用
  • showtime
  • 返回
  • 谢谢
  • pchar
  • stdcall
  • procedure
  • begin

得分解答快速导航

  • 帖主:SpeedyHorse
  • leeky
  • keiy
  • WangZWang

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo