能力值:
( LV6,RANK:90 )
|
-
-
2 楼
自己顶一下吧
|
能力值:
( LV6,RANK:90 )
|
-
-
3 楼
自己写了一个函数测试发现vb下调用c写的dll返回字符串函数确实存在问题请高手解答
char * __stdcall RT_Str()
{
return ("Hello World!");
}
在vb下如下调用
Private Declare Sub RT_Str "mydll.dll" () As String
MsgBox RT_Str()
结果弹出的消息框是空的
请高手分析和解答
|
能力值:
( LV6,RANK:90 )
|
-
-
4 楼
再顶
还没有解决
|
能力值:
( LV6,RANK:90 )
|
-
-
5 楼
再顶~~~
|
能力值:
( LV9,RANK:810 )
|
-
-
6 楼
|
能力值:
( LV6,RANK:90 )
|
-
-
7 楼
VB下的字符串格式和VC中的char有些不同的
具体参考askpro里的解答:
直接返回char *是不行的,VB不支持这种做法。正如你在资料中看到,大多数都是在VB中先给字符串分配空间,再传递给VC,在DLL中可以修改字符串,但不能超过VB中分配的空间。如果你希望直接返回字符串,必须使用BSTR类型,这实际上就是VB中的字符串所使用的类型。下面是一个简单的例子:
EXTERN_C BSTR WINAPI RetStr()
{
char *str="1234567890";
return SysAllocString((BSTR)str);
或者参考一下VB下调用GetComputerName的方法.
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
最初由 larblue 发布 自己写了一个函数测试发现vb下调用c写的dll返回字符串函数确实存在问题请高手解答
char * __stdcall RT_Str() { return ("Hello World!"); ........ Private Declare Function RT_Str "mydll.dll" () As String
|
|
|