vbÔÚµ÷ÓÃAPIµÄÒ»¸öBug¿ÉÄܵ¼ÖÂÄÚ´æй¶
ÆäʵÕâ¸öÎÊÌâÎÒºÜÔçºÜÔçÒÔÇ°¾Í·¢ÏÖÁË£¬Ö»ÊÇһֱûÁôÒ⣬Ҳ²»ÔÚÒâ¡£½ñÌìÎÞÒâÖÐÓÖÓÃVBдÁËÒ»¸ö³ÌÐòÈ«²¿Ê¹ÓÃNTDLLµ¼³öº¯Êý±àд£¬ÓÖ³öÏÖÁËÕâÑùµÄÇé¿ö£¬ÕâÑù¾ÍÓɲ»µÃÎÒ²»×¢ÒâÁË£¬¾¹ýÎҵķ´¸´²âÊÔÒÔ¼°·´»ã±àÑéÖ¤£¬Ö¤ÊµÁËvb6_sp6ÔÚµ÷ÓÃijЩAPI(²âÊÔµÄÓ¦¸ÃÓкܶàAPI´æÔÚÕâÑùµÄÎÊÌâ)´æÔÚÄÚ´æй¶ÎÊÌâ»òÕßÊǺ¯Êýµ÷ÓÃʧ°Ü¡£Çë´ó¼ÒÏÈ¿´ÎÒдµÄ¼òµ¥Á½¶Î´úÂë¡£
´úÂëÒ»£º
Option Explicit
Private Const MEM_RELEASE = &H8000
Private Const MEM_COMMIT = &H1000
Private Const PAGE_EXECUTE_READWRITE = &H40
Private Declare Function VirtualAlloc Lib "kernel32" (lpAddress As Any, ByVal dwSize As Long, ByVal flAllocationType As Long, ByVal flProtect As Long) As Long
Private Declare Function VirtualFree Lib "kernel32" (lpAddress As Any, ByVal dwSize As Long, ByVal dwFreeType As Long) As Long
Private Sub Code1()
Dim Base As Long
Base = VirtualAlloc(ByVal 0&, 100, MEM_COMMIT, PAGE_EXECUTE_READWRITE)
If Base Then
MsgBox Hex(Base)
MsgBox VirtualFree(ByVal Base, 0, MEM_RELEASE)
MsgBox Hex(GetLastError)
End If
End Sub
Õâ¶Î´úÂëÊÇÉêÇëÒ»¶ÎÄڴ棬ȻºóÂíÉÏÊÍ·ÅËü£¬´úÂëûʲôÄÑÒÔÀí½âµÄ·Ç³£¼òµ¥¡£´ó¼Ò×Ðϸ¿´´úÂëÉϺÃÏñÒ²²»´æÔÚÓÐʲôÎÊÌ⣬ÄÇôÎÊÌâÔÚʲôµØ·½ÄØ£¿
ÎÒÒ»¾äÒ»¾äÀ´½âÎöÊ×ÏÈ“Base = VirtualAlloc(ByVal 0&, 100, MEM_COMMIT, PAGE_EXECUTE_READWRITE)”
ÕâÐдúÂëÉêÇëÁËÒ»¶Î³¤100×Ö½ÚµÄÄÚ´æ¸ú×Ù½á¹û³É¹¦ÉêÇëÁ˵óöijµØÖ·£¬È»ºóÎÒÓÃmsgbox°ÑµØÖ·ÏÔʾ³öÀ´
ÕâʱÕâ¶ÎµØÖ·ÊÇ¿ÉÓõģ¬´ó¼Ò¿ÉÒÔʹÓÃһЩÄÚ´æ²ì¿´±à¼¹¤¾ß£¬±ÈÈç±ùÈÐÖ®ÀàµÄ¡£È»ºóµ÷ÓÓVirtualFree ByVal Base, 0, MEM_RELEASE"ÊÍ·ÅÄڴ棬ʧ°ÜÁË¡£ÎÒ¼ì²éÁ˺ܾòÎÊýºÍAPIÉùÃ÷¾ùû·¢ÏÖÓÐʲôÎÊÌâÄÇôÎÊÌâ³öÔÚʲôµØ·½ÄØ£¿ÎªÁËÇóÖ¤ÎÒдÁË´úÂë¶þ£¬Ò²¾ÍÊÇ´úÂëÒ»×îÖÕÔÚRing3²ãµ÷ÓõÄAPIº¯Êý
´úÂë¶þ£º
Option Explicit
Private Const MEM_RELEASE = &H8000
Private Const MEM_COMMIT = &H1000
Private Const PAGE_EXECUTE_READWRITE = &H40
Private Declare Function Vi
Ïà¹ØÎĵµ£º
½ñÌì×öÒ»¸öVB³ÌÐòµÄ×ÔÏÔ×¢²áÂë¡£ÎÒÒ²²»ÖªµÀ¸ÃÔõô½Ð£¬¾ÍÊÇÕÒµ½³öÏÖ×¢²áÂëµÄµØ·½£¬È»ºóÓöԻ°¿òµ¯³öÀ´¡£Ëµ°×Á˾ÍÊÇÓÃMessageBox°ÑÒ»¸ö×Ö·û´®¸øµ¯³öÀ´£¨Ã»×·Ç󰢡£¡£¡££©
ΪÁËÓеã×·Ç󣬽ñÌì²»µ¼Èëuser32ÀïÃæµÄAPI£¬¶øÊÇ°ÑVBÀïÃæ×Ô´øµÄMsgboxº¯Êý¸øÍÚ³öÀ´µ÷Ó㬾ÍÊÇÒýÓÃMSVBVM60.rtcMsgBoxº¯Êý¡£ÎÒÊ ......
¡¡¡¡Èç½ñOCX¿Ø¼þÔÚ±à³ÌÖÐÒÑÕ¼ÁìÁ˺ÜÖØÒªµÄµØλ,ÎÒÃÇ¿ÉÒÔÀûÓÃOCX¿Ø¼þÍê³ÉһЩÏ൱¸´Ôӵıà³Ì²Ù×÷.ͬʱOCX ¿Ø¼þ»¹ÓÐÀûÓÚÖ÷³ÌÐòµÄ¼òµ¥»¯¡¢¹¦ÄܵÄÖØÓá¢Òþ³£³ÌÐòʵÏÖϸ½Ú¡¢±ãÓÚÉý¼¶¡¢´«²¥·½±ãµÈÓŵ㡣ÏÖÔÚÎÒÃÇ¿ÉÒÔÀûÓÃVB 5.0·½±ãµÄÖÆ×÷³ö×Ô¼ºµÄOCX¿Ø¼þ¹©ÎÒÃÇÔÚ±à³ÌÖÐʹÓÃͬʱ»¹¿ÉÒÔ°ÑËüË͸øÄãÖÜΧϲ»¶±à³ÌµÄÅóÓÑ!
ÏÂÃæÁгöÖÆ× ......
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Set cn = New ADODB.Connection
cn.Open "Provider=OraOLEDB.Oracle.1;Persist Security Info= ......