ايران ويج

نسخه‌ی کامل: روش دیگه برا لود گردن Api
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
به غیر از روش عادی که در بالای کد صورت می گیره روش دیگه ای برای فراخوندن یه Api تو وی بی نیست ؟
فكر كنم فهميدم منظورت چيه !
خوب اول تمام آي پي اي ها رو تعريف كن Biggrin Amaze
تنها راه صدا زدن يه تابع از توي يه فايل DLL توي وي بي همينه ! راه ديگه اي وجود نداره . :roll:
توي دات نت كه راههاي مختلفي وجود داره ولي غير اون رو نمي دونم. آقاي وحيد دوهزار و خرده اي (!) يه بار يه مطلب گذاشته بودند توي سايت‌! لينكش رو نمي دونم شرمندم....
کد:
'Create a new project and add this code to Form1
Private Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As Long
Private Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
Private Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal lpProcName As String) As Long
Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Any, ByVal wParam As Any, ByVal lParam As Any) As Long
Private Sub Form_Load()
    On Error Resume Next
    'KPD-Team 1999
    'URL: http://www.allapi.net/
    'E-Mail: KPDTeam@Allapi.net
    'We're going to call an API-function, without declaring it!
    Dim lb As Long, pa As Long
    'map 'user32' into the address space of the calling process.
    lb = LoadLibrary("user32")
    'retrieve the address of 'SetWindowTextA'
    pa = GetProcAddress(lb, "SetWindowTextA")
    'Call the SetWindowTextA-function
    CallWindowProc pa, Me.hWnd, "Hello !", ByVal 0&, ByVal 0&
    'unmap the library's address
    FreeLibrary lb
End Sub
همچین کدی هست اما نمی دونم چرا برنامه هنگ می کنه وقتی ازش استفاده می شه .
آره مال منم هنگيد ؟؟؟ [تصویر:  1.gif] [تصویر:  12.gif]
دوستان عزيز سلام

اين تكنيكي كه اين اينها بكار گرفتن روشي هستش با نام صدا زدن توابع از طريق آدرس اونها !
اين روش رو من فقط در زبان C ديده بودم اما اينطوريش رو نديده بودم ! 8O 8O
يه مشكلي كه هست اينه كه كار با آدرس و حافظه توي وي بي كلا ممنوع هستش و محدود ميشه به همين چندتا آي پي آي !!
منم چند باري كه يك سري كد از زبان ++C رو به وي بي تبديل كردم با همين مشكل برخورد كردم !
اين مشكل رو هم نمي دونم چطور ميشه حل كرد ! :cry: :cry: :oops:
راست ميگي احتمالا تو سي بدون مشكله ولي تو وي بي نشدني.
سي به زبان سطح ماشين خيلي نزديكتره واسه همين خيلي راحتر كار ميكنه.