如果“万一”这个API函数的入口参数和返回数据都是unicode格式,那么把API的入口参数声明为byval xx as long (调用时用 strptr(xxx)传入),返回数据声明为 byte数组就行了。这样返回值(文本的unicode编码数据)可直接赋值给VB6的String类型变量,并且该变量接收数据后,就是正常的文本内容。
LPSTR是windowsSDK中定义的ansi字符串指针,也就是传统的char*。 在vb6中以declare声明的外部函数中如果出现了char*以及char*的各种派生类型,参数中出现可以直接在declare声明中写成string,但是需要注意一个问题,形参声明明需要写byval,实参直接传递参数即可,不要搞什么strptr或者varptr。参数如果是输入参数可以直接传string变量,参数如果是输出参数就需要提前分配缓冲区空间,这个LPSTR和api函数GetWindowText和SetWindowText一样的类型,想一想这个api怎么用的就行了。 但是需要注意:返回值出现LPSTR就只能定义为long然后手动去取内容,这个超出了vb运行库的转换范围。 Declare Function WebApply Lib "IWebApply.dll" (byval xxx as string,byval xxx as string) As long