dll的一个问题

zhangcyu 2003-09-29 10:52:36
请问怎么在vcwfs.dll中调用一个vgetdoc(i:integer;var s:ansistring):longint函数,vcwfs.dll是用vc编写的一个dll ,在c;\winnt\system32 .
...全文
32 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangcyu 2003-10-10
  • 打赏
  • 举报
回复
vcwfs.dll 不是我写得,没有源代码,只是在VB程序中看见疑心声明:
Public Declare Function VCGetDoc Lib "vcwfs.dll" (ByVal intNumber As Integer, ByVal strData As String) As Long
在VB中可以正常使用,不知为何在DEPHI中不能正常使用。
为何我在本机中搜索不到VCWFS.DLL文件
且vcwfs.dll不能注册成功
stargazer 2003-10-10
  • 打赏
  • 举报
回复
同意 Seahilly(小峰)
iBear 2003-10-03
  • 打赏
  • 举报
回复
在dll最好不要使用string型参数或返回值,它额外的引入一个borlandmm.dll的库才能正常工作.你可改用pchar或指针,shortstring也行
xiaoyuer0851 2003-10-03
  • 打赏
  • 举报
回复
同意楼上的,
Seahilly(小峰) ,在那边看过你的帖子, 关于高速公路的,
强…………
Seahilly 2003-10-03
  • 打赏
  • 举报
回复
问题出在vgetdoc(i:integer;var s:ansistring)的调用参数var s:ansistring上。Delphi和VC处理字符串的方法不同,不知你在VC中用什么类型与var s:ansistring对应?
修改建议:
1、在Delphi程序中定义字符数组类型 Type TCharArray=Array[0..1023] of Char;
2、在VC程序中定义对应字符数组类型 CharArray:Char[1024];
3、调用函数vgetdoc(i:integer;var s:ansistring)修改为:
vgetdoc(i:integer;var s:TCharArray)
4、VC程序 vgetdoc(integer i;CharArray& s)
zhangcyu 2003-09-29
  • 打赏
  • 举报
回复
这些我都用过,虽然没有出错,但S始终没有得到想要的字符串
thomas_cat 2003-09-29
  • 打赏
  • 举报
回复
还可能有需要重新命名的问题,需要用Depends查看dll函数的名字
FrameSniper 2003-09-29
  • 打赏
  • 举报
回复
可以静态调用,也可以动态调用,相关方式下个超级猛料看看!
upingking 2003-09-29
  • 打赏
  • 举报
回复

implementation之后声明
vgetdoc(i:integer;var s:ansistring):longint;stdcall;external 'c:\winnt\system32\vcwfs.dll ' ;
or
vgetdoc(i:integer;var s:ansistring):longint;stdcall;external 'vcwfs.dll ' ;
不知对不??

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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