!!!重新提一个关于在 VB 中调用 DLL 中的函数的问题!!!
我把要求简化一下:
在这个 DLL 中有:
char version[] = "DLL-1234";
char * get_version( char * lpBuff )
{
strcpy( lpBuff, version );
return( lpBuff );
}
这样在 BCB 中调用正常。
我的问题是:
1。怎样在 VB 中声明这个函数?(假定 DLL 名为 C:\DEMO.DLL)
2。在VB中怎样调用?(包括传递指针参数和获取返回值)
我不会VB,需要具体代码,我想用不了几行吧?
或者是 get_version() 需要怎样改一下也可以,但要保证在 BCB 和 VB 的程序中都能正确调用。
问题点数:100、回复次数:7Top
1 楼charset(神奈川)回复于 2001-08-19 21:53:46 得分 10
Declare Function get_version lib "C:\DEMO.DLL" (ByVal lpBuff as String) as String
也可以是
Declare Function get_version lib "C:\DEMO.DLL" (ByVal lpBuff as String) as Long
返回Long 的是get_version的返回字符的第一个字符的地址。就是
dim rc = getversion("AAC")
然后可以使用拷贝MemCopy的API拷贝从RC开始的区域。
一般是用返回String 的比较好,我倾向于返回String的。
给我50分。Top
2 楼wyzegg(蛋)回复于 2001-08-20 00:24:32 得分 0
还有你的VC的程序一定要有一个def文件
LIBRARY your.dll
EXPORTS
get_version @1 PRIVATE
才行
Top
3 楼jixian(极限)回复于 2001-08-20 01:18:21 得分 0
BCB里我说了Top
4 楼lingll(blog.csdn.net/lingll/)回复于 2001-08-20 01:18:26 得分 0
vc就搞过,bc就不懂了Top
5 楼lingll(blog.csdn.net/lingll/)回复于 2001-08-20 01:19:59 得分 0
gzTop
6 楼SCUM(人渣)回复于 2001-08-20 23:37:58 得分 90
1。声明:
Public Declare Function get_version Lib "C:\DEMO.DLL" (ByVal lpBuff As String) As String
声明最好放在 Module 文件中
2。调用:
Dim Buf As String
Buf = space$( 512 )
get_version Buf
这样就可以了
还有,最好不要使用返回的字符串,有可能会出错。
Top
7 楼Walkline(☆往事浮现☆)回复于 2001-08-20 23:53:45 得分 0
用 LoadLibrary 获得链接库的接口,在用 GetProcAddress 取得想要调用的函数的地址,最后用 CallWindowProc 就可以执行调用了。
我觉得还是这样好一点Top




