<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编辑过] <p>没错</p>
<p> </p>
<p>对于字符串的返回,不能像VB内部函数那样直接返回,而要使用系统API的方式返回.</p>
<p> </p>
<p>具体在阿杰的例子里以及本程序安装包内示例代码里都有详细说明.</p> <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 <br/> InBox.IPrompt = Prompt<br/> InBox.ILxType = LxType<br/> InBox.IDefault = Default<br/> InBox.Show vbModal<br/> XInputBox = Tex</font></p>
<p><font face="Verdana">End Function</font></p>
<p> </p>
<p>我在调用这个函数时,要怎么处理才能像Inputbox一样呢?或是我要怎么处理一下这个函数呢?</p>
<p> </p>
<p> </p>
<p> </p> <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 <br/> InBox.IPrompt = Prompt<br/> InBox.ILxType = LxType<br/> InBox.IDefault = Default<br/> InBox.Show vbModal<br/> XInputBox = Tex</font></p>
<p><font face="Verdana">End Function</font></p>
<p> </p>
<p>我在调用这个函数时,要怎么处理才能像Inputbox一样呢?或是我要怎么处理一下这个函数呢?</p></div>
<p>看这种情况,是不可能直接像inputbox一样返回字符串的,只有使用传入缓冲区再改写内容的方案.</p>
<p> </p>
<p>你见过哪个API是直接返回字符串的?</p> RetureStr =StrConv("Hello!", vbFromUnicode) <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> </p>
<p>加到例子里去.</p> 返回个UNICODE_STRING结构体,然后再转换成VB的BSTR。 大家真热心{:soso_e198:}
页:
[1]