在使用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'"
|
闂傚倸鍊搁崐鎼佸磹閹间礁纾圭€瑰嫭鍣磋ぐ鎺戠倞妞ゆ巻鍋撴潻婵嬫⒑闁偛鑻晶鎾煛鐏炲墽銆掗柍褜鍓ㄧ紞鍡涘磻閸涱厾鏆︾€光偓閸曨剛鍘搁悗鍏夊亾闁逞屽墴瀹曚即寮介婧惧亾娴g硶妲堟俊顖氬槻閻楁岸姊洪崨濠傚闁稿鎸歌濠㈣泛顑勭换鍡涙煟閹板吀绨婚柍褜鍓氶崹鍨暦閺囩喓绡€婵﹩鍓涢鍡涙⒑鐠恒劌娅愰柟鍑ゆ嫹 (0) +1 闂傚倸鍊搁崐鎼佸磹瀹勬噴褰掑炊瑜忛弳锕傛煕椤垵浜濋柛娆忕箳閳ь剙绠嶉崕閬嶅箯鐎n喖瑙﹂悗锝庡枟閻撴洟鏌嶉埡浣告灓婵炲牄鍨归湁缁绢參鏀辩€氾拷 (0) +1 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻鎾闁稿鍨块幃妤€鈽夊▎瀣窗濡炪倐鏅滈悡锟犲蓟閿濆绠i柨婵嗘-濡嫮绱撴担鍝勵€岄柛銊ョ埣瀵濡搁埡鍌氫簽闂佺ǹ鏈粙鎴︻敂閿燂拷 (0) +1
闂傚倸鍊搁崐鎼佸磹閹间礁纾圭€瑰嫭鍣磋ぐ鎺戠倞妞ゆ巻鍋撴潻婵嬫⒑闁偛鑻晶鎾煛鐏炲墽銆掗柍褜鍓ㄧ紞鍡涘磻閸涱厾鏆︾€光偓閸曨剛鍘搁悗鍏夊亾闁逞屽墴瀹曚即寮介婧惧亾娴g硶妲堟俊顖氬槻閻楁岸姊洪崨濠傚闁稿鎸歌濠㈣泛顑勭换鍡涙煟閹板吀绨婚柍褜鍓氶崹鍨暦閺囥垹钃熼柕澶堝劚閻庮參姊虹粔鍡楀濞堟棃鏌﹂崘顏勬灈闁哄矉缍佸顕€宕堕妷銏犱壕闁逞屽墴閺屾稓鈧綆鍋呯亸顓㈡煃閽樺妲搁柍璇茬Ч椤㈡ǹ顦辩紒銊ャ偢閺岀喐绗熼崹顔碱潎閻庤娲橀崕濂杆囬鈧弻锟犲焵椤掑嫭鍤嶉柕澶涚导缁ㄥ姊洪崫鍕窛闁稿鍋よ棢闁绘劗鍎ら崐鍨叏濡厧浜鹃悗姘炬嫹闂傚倸鍊搁崐鎼佸磹閹间礁纾瑰瀣捣閻棗銆掑锝呬壕濡ょ姷鍋為悧鐘汇€侀弴銏犖ч柛鈩冦仦缁剝淇婇悙顏勨偓鏍礉瑜忕划濠氬箣閻樺樊妫滈梺绉嗗嫷娈曢柣鎾存礋閺岀喖鏌囬敃鈧悘閬嶆煕閵堝拋鍎旈柡灞诲€濆鍫曞箰鎼粹€叉樊闂備礁鎼張顒傜矙閹达箑鐓″璺号堥弸搴ㄦ煙闁箑鏋ら柍璇茬箳缁辨捇宕掑顑藉亾妞嬪孩濯奸柡灞诲劚閻ら箖鏌eΟ娆惧殭闁藉啰鍠栭弻锝夊籍閸屾瀚涢梺杞扮缁夌數鎹㈠┑鍥╃瘈闁稿本纰嶉悘鎾绘⒑閸濆嫭锛嶉柛妯恒偢閳ユ棃宕橀鍢壯囨煕閹扳晛濡煎┑顔惧厴濮婃椽鎮烽弶鎸庮唨闂佺懓鍤栭幏锟�>>
正在阅读: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