在使用VB调用VC写的DLL的时候,可以实现一些VB不能实现或者很难实现的功能,但是,因为VB与VC之间的数据类型并不总是完全对应的,所以,在进行参数传递的时候,就需要进行类型转换了。下面我将通过逐步的推进的方法,来看看如何达到VB与VC之间的通信。
首先,看一个简单的例子。
VC中的程序:
extern "C" _declspec(dllexport) void ReadString(void)
{
//函数功能
}
将这个VC程序编译成DLL程序供VB调用(假设生成的为commication.dll)
VB中的程序:
……………………
Private Declare Function ReadString Lib "commication.dll" ()
……………………
call ReadString
在这里,我们实现了一个简单的通信,即在VC中写了一个DLL,然后再在VB中调用了这个DLL,但是,在这次的通信中,实际上他们之间没有传递任何数据,仅仅是VB调用了DLL,从而使得commication.dll中的函数ReadString()函数执行。这种通信实现是非常简单,所以他完成的功能也就非常的简单,然而我们的要求肯定不止于此。
现在就让我们来实现一个使用DLL来处理VB中的数据的例子,并且将处理结果返回给VB程序:
VC中的程序:
extern "C" _declspec(dllexport) bool ReadString(bool receive)
{
if(receive==true)
return true;
else
return false;
}
VB中的程序:
……………………
Private Declare Function ReadString Lib "commication.dll" (ByVal send As Boolean) as Boolean
……………………
Dim result As Boolean
Dim send As Boolean
send = False
result = ReadString(send)
If result Then
MsgBox "The return value is 'true'"
|
正在阅读:VB与VC通信初探(一)VB与VC通信初探(一)
2004-05-11 10:21
出处:CSDN
责任编辑:linjixiong
键盘也能翻页,试试“← →”键
相关文章
怎么查看进程正在调用哪些DLL文件
Win7系统取消dll文件关联的方法
win7系统玩游戏提示XINPUT1-3.dll丢失怎么处理
Win7笔记本系统如何添加注册dll和反注册dl
winxp系统开机dLL文件出错提示的具体处理步骤
360se.exe应用程序出错 计算机中丢失demaxiya.dll解决方法
pgort100.dll丢失 QQ提示pgort100.dll报错解决方法
msvcr100.dll丢失 QQ提示msvcr100.dll报错解决方法
win7 64位系统无法运行程序提示找不到tbb_debug.dll
win7旗舰版64位系统开机提示找不到comctl32.dll