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

dll中的函数如何返回字符串???

楼主aqtata(魔非魔,道非道,善恶在人心)2005-03-11 13:14:53 在 Delphi / Windows SDK/API 提问

××××dll中的函数  
   
  function   test():string;stdcall;  
  begin  
  result:='成功返回字符串';  
  end;  
   
  ××××在VB中调用  
   
  Private   Declare   Function   test   Lib   "Project1.dll"   ()   As   String  
   
  Private   Sub   Command1_Click()  
  MsgBox   test  
  End   Sub  
   
  这样会非法操作~~~该怎么办呢??? 问题点数:20、回复次数:6Top

1 楼Ephesus(艾菲索斯)回复于 2005-03-11 13:34:44 得分 0

把String改为ShortString或Pchar类型Top

2 楼aqtata(魔非魔,道非道,善恶在人心)回复于 2005-03-11 13:49:57 得分 0

函数返回值吗,改了还是不行Top

3 楼DDGG(叮叮当当)回复于 2005-03-11 14:22:44 得分 0

从DLL中返回字符串到VB时,VB要首先分配内存,然后传进去:  
   
  ××××dll中的函数  
   
  procedure   test(s:pchar);stdcall;  
  begin  
  result:='成功返回字符串';  
  end;  
   
  ××××在VB中调用  
   
  Private   Declare   Sub   test   Lib   "Project1.dll"   (s   As   String)  
   
  Private   Sub   Command1_Click()  
      Dim   s   As   String*256  
   
      s   =   ""  
      test(s)  
      MsgBox   s  
  End   SubTop

4 楼DDGG(叮叮当当)回复于 2005-03-11 15:10:40 得分 20

代码有误,更正如下:(已通过测试)  
   
  ××××dll中的函数   Project1.dpr  
   
  uses    
      SysUtils,   Classes,   Windows;  
   
  ...  
   
  procedure   test(s:pchar);stdcall;  
  var  
      A:   string;  
  begin  
      A:='成功返回字符串';  
      CopyMemory(s,   @A[1],   Length(A));  
  end;  
   
  ××××在VB中调用  
   
  Private   Declare   Sub   test   Lib   "Project1.dll"   (ByVal   s   As   String)  
   
  Private   Sub   Command1_Click()  
      Dim   s   As   String   *   256  
   
      s   =   ""  
      test(s)  
      MsgBox   s  
  End   Sub  
  Top

5 楼aqtata(魔非魔,道非道,善恶在人心)回复于 2005-03-11 15:11:17 得分 0

我的是函数啊,不是过程,我试了也不行,还是非法操作了Top

6 楼aqtata(魔非魔,道非道,善恶在人心)回复于 2005-03-11 15:19:57 得分 0

第2次的可以了,不过就是那字符串后面都是空白了,呵呵,结帐Top

相关问题

  • DLL函数返回字符串
  • DLL中的函数返回值是字符串变量!
  • dll中的函数如何返回字符串???
  • 在dll中写的函数返回字符串,返回不了哪错了
  • 在DLL文件中如何写一个返回字符串的函数?
  • 函数如何返回字符串?
  • 怎样解决DLL中函数返回一个字符串时产生的'Invalid pointer operation'错误?
  • 在DLL中定义一个函数返回字符串,应该声明成什么类型。
  • 字符串函数?
  • 字符串函数

关键词

  • 函数
  • vb
  • dll
  • 返回字符串
  • sub
  • msgbox
  • stdcall
  • pchar
  • project
  • 调用private declare

得分解答快速导航

  • 帖主:aqtata
  • DDGG

相关链接

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

广告也精彩

反馈

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