vbÖÆ×÷¿ÉÊä³öº¯ÊýµÄͨÓÃDLL VB_DLL_LinkÓ÷¨
vbÖÆ×÷¿ÉÊä³öº¯ÊýµÄͨÓÃDLL---VB_DLL_LinkÓ÷¨
ÂÛ̳ԽÀ´Ô½¶àÈ˹Ø×¢dll£¬ÌØ·ÖÏíÒ»ÏÂvbÖÆ×÷¿ÉÊä³öº¯ÊýµÄͨÓÃDLL---VB_DLL_LinkÓ÷¨
´ó¼ÒÖªµÀ£¬VB6Ö»ÄÜÖÆ×÷ActiveX DLLÎļþ£¬ÖÆ×÷ÄÜÊä³öº¯ÊýµÄͨÓÃDLLÎļþͨ³£ÒªÓõ½VCµÈ¹¤¾ß¡£Êµ¼ÊÉÏ£¬VBÔÚ±àÒëµÄʱºò¼ÓÒÔ¿ØÖÆ£¬¾¹ýÊʵ±´¦ÀíÒ²ÊÇ¿ÉÒÔÖÆ×÷ͨÓÃDLLµÄ¡£Ê¹ÓÃVB_DLL_Link³ÌÐò¾Í¿ÉÒÔÀûÓÃVB±àÒë³öͨÓõÄDLLÎļþ£¬´ËDLLÎļþ¿ÉÒÔ±»ÆäËû³ÌÐòµ÷Óã¬ÀýÈçÔÚVBÖÐÓÃDeclareÓï¾äµ÷Óò¢Ö´ÐÐDLLÖеĺ¯Êý¡£ÏÂÃæ½éÉÜVB_DLL_LinkµÄʹÓ÷½·¨£º
1¡¢°²×°£º
±¾Èí¼þΪ´¿ÂÌÉ«Èí¼þ¡£ÏÂÔØVB_DLL_Link.exeºó£¬Ë«»÷Ëü¾Í¿ÉÒÔ×Ô¶¯°²×°ÁË¡£ÄãÒ²¿ÉÒÔÊÖ¶¯½«Ëü¸´ÖƵ½VB6³ÌÐòĿ¼Ï£¬½«ÔLink.exe¸ÄÃûΪLink2.exe£¬ÔÙ½«VB_DLL_Link.exe¸ÄÃûΪLink.exe¼´¿É¡£
2¡¢Éú³ÉDLL£º
°²×°ºÃVB_DLL_Linkºó£¬´ò¿ªVB6£¬Ð½¨±ê×¼exe¹¤³Ì£¬¹¤³Ì²Ëµ¥>>ÒÆ³ýForm1£¬Ìí¼ÓÒ»¸ö±ê׼ģ¿éÈçModule1.bas£¬Ê×ÏÈÏòÆäÖÐдÈëDLLµÄÈë¿Ú´úÂ룺
Function DLLMain(ByVal hInstDLL As Long, ByVal fdwReason As Long, ByVal lpwReserved As Long) As Long
DLLMain = 1
End Function
×¢Òâ²ÎÊýÐÎʽһ¶¨ÒªÕýÈ·£¬·ñÔò±àÒëʧ°Ü¡£¸ß¼¶±à³ÌʱÕâЩ²ÎÊýºÜÓÐÓá£ÔÚÊ״ε÷ÓÃDLLºÍµ÷ÓÃDLLµÄÔ³ÌÐòÍ˳öʱ¾ù»áÖ´ÐÐDLLMainº¯Êý¡£Õâ¸öº¯ÊýÊDZØÐëµÄ¡£
ΪÁËʹVB²»±¨´í£¬»¹Ðè¼ÓÈëÒÔÏ´úÂ룺
Sub Main()
'È·±£VBÄܱàÒë
End Sub
È»ºó¾Í¿ÉÒÔÏòModule1.basÖÐдÈë×Ô¶¨Ò庯Êý´úÂëÁË£¬È磺
Function Add(ByVal A As Double, ByVal B As Double) As Double
MsgBox A + B
Add = A + B
End Function
Private Sub M(s As String)
MsgBox s, vbInformation
End Sub
±àдºÃ´úÂëºó£¬±£´æ¹¤³Ì£¬Ñ¡ÔñÎļþ²Ëµ¥>>Éú³Éexe£¬×¢Ò⽫ÎļþÀ©Õ¹Ãû¸ÄΪ.dll£¬·ñÔò±¾Èí¼þ²»Äܵ÷³ö¡£È»ºó±¾³ÌÐò¾Í»áÔËÐУ¬³öÏÖÒ»¸ö¶Ô»°¿òÌáʾѡÔñ´Ë¹¤³ÌÐèÒªµ¼³öµÄº¯ÊýËùÔÚµÄÄ£¿éÎļþ£¬´ËÀý¼´Module1.bas£¬Ñ¡ÔñºÃºó±¾³ÌÐòÖ÷´°¿Ú»áÁгöModule1.basÖÐËùÓеĺ¯ÊýÃû¡£Èç¹ûÓжà¸öÄ£¿é£¬¿ÉÒÔÑ¡Ôñ"´ÓÄ£¿éÌí¼Ó"°´Å¥¼ÌÐøÌí¼Óº¯ÊýÃû¡£"Ìí¼Óº¯ÊýÃû"°´Å¥¿ÉÊÖ¶¯Ìí¼ÓÏÖ´æµÄº¯ÊýµÄÃû³Æ¡£È»ºó¹´Ñ¡ÐèÒªµ¼³öµÄº¯ÊýÃû£¬µã»÷"±àÒëΪÄÜÊä³öº¯ÊýµÄDLL"°´Å¥£¬¼´¿É±àÒë³öͨÓÃDLLÎļþÁË£¬ËüÄÜÊä³öº¯ÊýÁбíÖдò¹´µÄËùÓк¯Êý¡£Èô²»ÐèÒª±àÒëΪͨÓÃDLL£¬Çëµã»÷"³£¹æ±àÒë"»ò°´Esc¼ü¡£
3¡¢Ó¦ÓÃDLL£º
±àÒëºÃµÄͨÓÃDLLÎļþ£¬¿É°´³£¹æDLLÎļþµÄµ÷Ó÷½·¨¼ÓÒÔµ÷Ó
Ïà¹ØÎĵµ£º
½ñÌì×öÒ»¸öVB³ÌÐòµÄ×ÔÏÔ×¢²áÂë¡£ÎÒÒ²²»ÖªµÀ¸ÃÔõô½Ð£¬¾ÍÊÇÕÒµ½³öÏÖ×¢²áÂëµÄµØ·½£¬È»ºóÓöԻ°¿òµ¯³öÀ´¡£Ëµ°×Á˾ÍÊÇÓÃMessageBox°ÑÒ»¸ö×Ö·û´®¸øµ¯³öÀ´£¨Ã»×·Ç󰢡£¡£¡££©
ΪÁËÓеã×·Ç󣬽ñÌì²»µ¼Èëuser32ÀïÃæµÄAPI£¬¶øÊǰÑVBÀïÃæ×Ô´øµÄMsgboxº¯Êý¸øÍÚ³öÀ´µ÷Ó㬾ÍÊÇÒýÓÃMSVBVM60.rtcMsgBoxº¯Êý¡£ÎÒÊ ......
¼òµ¥¶øÊµÓõĺϲ¢ExcelÎļþµÄº¯Êý£¬Äܹ»½«¶à¸öXLSÎļþÖÐÖ¸¶¨ÊýÁ¿µÄ¹¤×÷±í×Ô¶¯ºÏ²¢µ½Ò»¸öXLSÎļþÀï¡£µ±È»£¬Èç¹ûÖ»ÊÇÊý¾ÝºÏ²¢£¬ÔòʹÓÃADO¾Í¿ÉÒÔʵÏÖ£¬µ«Èç¹ûÒª±£Áô±í¸ñ¸ñʽ£¬Ôò¿ÖÅÂÖ»ÄÜʹÓð³µÄ·½·¨ÁË¡£
Ò»¡¢º¯Êý´úÂ룺
Option Explicit
'* ********************************************************* ......
ÌâÄ¿£ºÒ»¼ÒСÐͺ½¿Õ¹«Ë¾¸Õ¸Õ¹ºÂòÁËһ̨¼ÆËã»ú£¬ÒÔʹÓÃеĻúƱ×Ô¶¯Ô¤¶©ÏµÍ³£¬Õâ¼Ò¹«Ë¾ÒªÇóÎÒÃÇ¿ª·¢Õâ¸öÐÂϵͳ¡£ÎÒÃÇÐèÒª±àдһ¸öÓ¦ÓóÌÐò£¬¶ÔÕâ¼Òº½¿Õ¹«Ë¾Î¨Ò»µÄÒ»¼Ü·É»ú£¨ÈÝÁ¿Îª10¸ö×ù룩µÄÿ¸öº½°à·ÖÅä×ùλ¡£Õâ¸öÓ¦ÓóÌÐòÓ¦¸ÃÊäÈëÏÂÃæÕâЩѡÏÇëÊäÈë1Ñ¡ÔñÍ·µÈ²ÕºÍÇëÊäÈë2Ñ¡Ôñ¾¼Ã²Õ¡£Èç¹ûÓû§ÊäÈë1£¬Ó¦ÓóÌÐòÓ¦¸Ã·ÖÅäÒ ......
http://blog.csdn.net/cw198624/archive/2009/02/19/3911759.aspx
Ìí¼ÓÒ»¸öListBoxºÍÒ»¸ö°´Å¥
Option Explicit
Private Declare Function CloseHandle Lib "kernel32" (ByVal Handle As Long) As Long
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As L ......