求救:我在VC里写的DLL,得到一字符串,我在VB里怎么样才能取出来?谢谢!!!!

niqiu 2001-06-07 04:46:00
...全文
133 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
niqiu 2001-06-08
  • 打赏
  • 举报
回复
谢谢你们!用SysAllocString 就可以解决了!
我要给分给你们!
wb197 2001-06-07
  • 打赏
  • 举报
回复
已经不需要copymemory,返回的直接就是一个string , VB完全认识,并且程序运行以后没有任何内泄漏。
TechnoFantasy 2001-06-07
  • 打赏
  • 举报
回复
Public Declare Function TestString Lib "testdll.dll" (ByVal a As String) As Long
调用后获得一个Long类型,然后利用api函数copymemory将这个数值指向的地址拷贝到一个
字符串中,另外你的TestString 参数中最好包含一个参数,返回返回的字符串的长度。
wb197 2001-06-07
  • 打赏
  • 举报
回复
VB

Public Declare Function TestString Lib "testdll.dll" (ByVal a As String) As String
wb197 2001-06-07
  • 打赏
  • 举报
回复
test.cpp
#include <windows.h>
#include <winnls.h>

BSTR _stdcall TestString( BSTR a );
BSTR _stdcall TestString( BSTR a )
{

BSTR b;
LPSTR pA, pB = "这里是pB";

pA = (LPSTR) a;
MessageBox ( 0, pA, 0, MB_OK );

b = SysAllocString( ( BSTR ) pB );
return b;
}

test.def
LIBRARY Testdll
EXPORTS
TestString 01
niqiu 2001-06-07
  • 打赏
  • 举报
回复
private declare function test lib "a.dll" ()
jack_zhan 2001-06-07
  • 打赏
  • 举报
回复
你用EXPORTS宏(在.DEF文件中)输出该函数,试一下!
jack_zhan 2001-06-07
  • 打赏
  • 举报
回复
你的DLL引用书写对吗?
niqiu 2001-06-07
  • 打赏
  • 举报
回复
__declspec(dllexport) LPCTSTR test()
{
return (LPCTSTR) "test";

}
niqiu 2001-06-07
  • 打赏
  • 举报
回复
是呀,我就是这么做的呀,可是就是传不回来!!!
jack_zhan 2001-06-07
  • 打赏
  • 举报
回复
如果,把该字符串作为一个EXPORTS函数的值,在VB中调用,不知道可以吗?
niqiu 2001-06-07
  • 打赏
  • 举报
回复
没有人捧场么?

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧