找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 7891|回复: 9

返回字符串的问题

  [复制链接]
头像被屏蔽

1

主题

5

回帖

0

精华

初来乍到

积分
256
发表于 2008-9-25 10:01:56 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽

1214

主题

352

回帖

11

精华

管理员

菜鸟

积分
93755

贡献奖关注奖人气王精英奖乐于助人勋章

发表于 2008-9-26 07:53:44 | 显示全部楼层
<font face="Verdana">
<p><font face="Verdana">这不是VB函数添加大师的问题,而是WINDOWS的约定</font></p>
<p><font face="Verdana">因为编写标准的DLL是不允许返回字符型和传递字符型参数的,只有通过内存指针地址来实现<br/>下面给你写了个传递与返回字符的例子,希望对你有所帮助。</font></p></font>
<p><font face="Verdana"><a href="http://www.m5home.com/bbs/viewthread.php?tid=1698&extra=&page=1">http://www.m5home.com/bbs/viewthread.php?tid=1698&extra=&page=1</a></font></p>
[此贴子已经被作者于2008-9-26 7:54:05编辑过]
【VB】QQ群:1422505加的请打上VB好友
【易语言】QQ群:9531809  或 177048
【FOXPRO】QQ群:6580324  或 33659603
【C/C++/VC】QQ群:3777552
【NiceBasic】QQ群:3703755

275

主题

3017

回帖

1

精华

管理员

嗷嗷叫的老马

积分
17064

论坛牛人贡献奖关注奖最佳版主进步奖人气王疯狂作品奖精英奖赞助论坛勋章乐于助人勋章

QQ
发表于 2008-9-26 15:05:43 | 显示全部楼层
<p>没错</p>
<p>&nbsp;</p>
<p>对于字符串的返回,不能像VB内部函数那样直接返回,而要使用系统API的方式返回.</p>
<p>&nbsp;</p>
<p>具体在阿杰的例子里以及本程序安装包内示例代码里都有详细说明.</p>
我就是嗷嗷叫的老马了......

头像被屏蔽

1

主题

5

回帖

0

精华

初来乍到

积分
256
 楼主| 发表于 2008-9-26 17:59:05 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

7

主题

36

回帖

0

精华

银牌会员

积分
577
发表于 2009-5-13 12:52:25 | 显示全部楼层
<p>我也想请问一下马哥,我做了一个类似于inputbox中的DLL,用函数添加大师编译后,使用要出错,我刚才看了上面的谈话,知道是我代码的问题了,关键是我现在不知怎么解决这个问题。我DLL中的代码是这样的</p>
<p><font face="Verdana">Public Tex As String</font></p>
<p><font face="Verdana">Public Function XInputBox(Prompt As String, LxType As Long, Optional Default As String) as string&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp; InBox.IPrompt = Prompt<br/>&nbsp;&nbsp;&nbsp; InBox.ILxType = LxType<br/>&nbsp;&nbsp;&nbsp; InBox.IDefault = Default<br/>&nbsp;&nbsp;&nbsp; InBox.Show&nbsp; vbModal<br/>&nbsp;&nbsp;&nbsp; XInputBox = Tex</font></p>
<p><font face="Verdana">End Function</font></p>
<p>&nbsp;</p>
<p>我在调用这个函数时,要怎么处理才能像Inputbox一样呢?或是我要怎么处理一下这个函数呢?</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
IF 你看到了我贴子的全部内容 Then 你点击了我发的贴子 SO 请你发表你的看法吧!阿门! Else 请打开我的贴子... 阅读... 留言吧! End if 我,来自绵阳...

76

主题

375

回帖

0

精华

铜牌会员

积分
231
发表于 2009-6-29 02:16:53 | 显示全部楼层
<div class="msgheader">QUOTE:</div><div class="msgborder"><b>以下是引用<i>有心人</i>在2009-5-13 12:52:25的发言:</b><br/>
<p>我也想请问一下马哥,我做了一个类似于inputbox中的DLL,用函数添加大师编译后,使用要出错,我刚才看了上面的谈话,知道是我代码的问题了,关键是我现在不知怎么解决这个问题。我DLL中的代码是这样的</p>
<p><font face="Verdana">Public Tex As String</font></p>
<p><font face="Verdana">Public Function XInputBox(Prompt As String, LxType As Long, Optional Default As String) as string&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp; InBox.IPrompt = Prompt<br/>&nbsp;&nbsp;&nbsp; InBox.ILxType = LxType<br/>&nbsp;&nbsp;&nbsp; InBox.IDefault = Default<br/>&nbsp;&nbsp;&nbsp; InBox.Show&nbsp; vbModal<br/>&nbsp;&nbsp;&nbsp; XInputBox = Tex</font></p>
<p><font face="Verdana">End Function</font></p>
<p>&nbsp;</p>
<p>我在调用这个函数时,要怎么处理才能像Inputbox一样呢?或是我要怎么处理一下这个函数呢?</p></div>
<p>看这种情况,是不可能直接像inputbox一样返回字符串的,只有使用传入缓冲区再改写内容的方案.</p>
<p>&nbsp;</p>
<p>你见过哪个API是直接返回字符串的?</p>

1

主题

26

回帖

0

精华

银牌会员

积分
329
发表于 2009-10-18 09:25:32 | 显示全部楼层
RetureStr =StrConv("Hello!", vbFromUnicode)

275

主题

3017

回帖

1

精华

管理员

嗷嗷叫的老马

积分
17064

论坛牛人贡献奖关注奖最佳版主进步奖人气王疯狂作品奖精英奖赞助论坛勋章乐于助人勋章

QQ
发表于 2009-10-19 21:43:26 | 显示全部楼层
<div class="msgheader">QUOTE:</div><div class="msgborder"><b>以下是引用<i>zzhgb</i>在2009-10-18 9:25:32的发言:</b><br/>RetureStr =StrConv("Hello!", vbFromUnicode) </div>
<p>这个办法是对的,能返回.</p>
<p>&nbsp;</p>
<p>加到例子里去.</p>
我就是嗷嗷叫的老马了......

857

主题

2632

回帖

2

精华

管理员

此生无悔入华夏,  长居日耳曼尼亚。  

积分
36130
发表于 2010-6-5 23:24:50 | 显示全部楼层
返回个UNICODE_STRING结构体,然后再转换成VB的BSTR。

30

主题

693

回帖

0

精华

钻石会员

积分
2815
发表于 2015-4-4 11:37:37 | 显示全部楼层
大家真热心{:soso_e198:}
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表