当前位置:编程学习 > VB >>

关于VB调用DLL的问题

VB调用DLL的时候,在Declare中声明的string类型参数,不能正确传入DLL中,后追踪发现,由于VB用的是unicode编码,而标准API一般只支持ANSI。VB在封装EXE时,对string类型参数加盖了一层编码处理(__VbaStrToAnsi),当然反向从读取DLL传回参数时,VB也会封装一个__VbaStrToUnicode转换。当然,在拉丁windows版本中这毫无问题,但在DBCS(包括中文)windows中就出现了严重问题。

请教高手,有没有比较彻底解决此问题的方法?或者其他变通的解决方法? --------------------编程问答-------------------- 把字符串参数声明为Long,然后传StrPtr(str1)进去,这样就不会触发VB的自动编码转换了。 --------------------编程问答-------------------- 1楼朋友,谢谢。
--------------------编程问答-------------------- .....西西太牛了..我也有个dll的问题...一直想不明白...不知道是什么原因
delphi编写的dll,不知道是不是标准dll,死活调用不了
反汇编跟踪了一下,发现传值的时候调用了(__VbaStrToAnsi这个玩意..不知道为啥.. --------------------编程问答--------------------
引用 3 楼 qingye2008 的回复:
delphi编写的dll,不知道是不是标准dll,死活调用不了
反汇编跟踪了一下,发现传值的时候调用了(__VbaStrToAnsi这个玩意..不知道为啥..


那说明也是触发了VB的自动UA/AU转换机制。你试试用1楼的方法。另外,这个帖子不知你看过没有:http://topic.csdn.net/u/20090914/18/fcfad119-87e6-4802-b1c1-7f9ab31e3773.html --------------------编程问答-------------------- 学习
补充:VB ,  API
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,