DLL в masm32

Тема в разделе "WASM.BEGINNERS", создана пользователем fragment, 21 июл 2010.

  1. fragment

    fragment New Member

    Публикаций:
    0
    Регистрация:
    11 июн 2008
    Сообщения:
    266
    Здравствуйте, решил подключить к своему проэкту dll файлы, здела все как в эксемпле но ехе фаил не компилируется.

    Код (Text):
    1. .686p
    2. .model flat,stdcall
    3. option casemap:none
    4.  
    5. includelib  ./lib/kernel32.lib
    6. includelib  ./lib/user32.lib
    7. includelib      ./lib/shell32.lib
    8. includelib      ./lib/ntdll.lib
    9. includelib      ./lib/advapi32.lib
    10.  
    11. .data
    12. libName  db "tstdll.dll",0
    13. FuncName db "TestProc",0
    14.  
    15. .data?
    16. hLib dd ?
    17.  
    18. .code
    19. start:
    20.  
    21. LoadLibrary PROTO :DWORD
    22.     push offset libName
    23.     call LoadLibrary
    24.  
    25.     mov hLib,eax
    26.  
    27. GetProcAddress PROTO :DWORD,:DWORD
    28.     push eax
    29.     push offset FuncName
    30.     call GetProcAddress
    31.  
    32.     call eax
    33.  
    34. FreeLibrary PROTO :DWORD
    35.     push hLib
    36.     call FreeLibrary
    37.  
    38. MessageBoxA PROTO :DWORD,:DWORD,:DWORD,:DWORD
    39.     push 00000030h
    40.     push 0h
    41.     push 0h
    42.     push 0h
    43.     call MessageBoxA
    44.  
    45. ExitProcess PROTO :DWORD
    46.     push eax
    47.     call ExitProcess
    48.  
    49. end start
    Код (Text):
    1. Microsoft (R) Incremental Linker Version 10.00.30319.01
    2. Copyright (C) Microsoft Corporation.  All rights reserved.
    3. test.obj : error LNK2001: unresolved external symbol _LoadLibrary@4
    4. test.exe : fatal error LNK1120: 1 unresolved externals
    5. There has been an error while linking this project.
     
  2. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    LoadLibrary - нет такой API.
    смотря внимательнее в пример.
     
  3. fragment

    fragment New Member

    Публикаций:
    0
    Регистрация:
    11 июн 2008
    Сообщения:
    266
    В примере упоменание LoadLibrary в одном месте в ехе

    Код (Text):
    1.  ;======== menu commands ========
    2.         .if wParam == 1000
    3.             invoke SendMessage,hWin,WM_SYSCOMMAND,SC_CLOSE,NULL
    4.  
    5.         .elseif wParam == 500
    6.             ; -------------------
    7.             ; Direct call the DLL
    8.             ; -------------------
    9.             jmp @F
    10.               libName  db "tstdll.dll",0
    11.               FuncName db "TestProc",0
    12.             @@:
    13.  
    14.             invoke LoadLibrary,ADDR libName
    15.             mov hLib, eax
    16.  
    17.             invoke GetProcAddress,hLib,ADDR FuncName
    18.             call eax
    19.  
    20.             invoke FreeLibrary,hLib
    21.  
    22.         .elseif wParam == 1900
    23.             szText TheMsg,"Assembler, Pure & Simple"
    24.             invoke MessageBox,hWin,ADDR TheMsg,ADDR szDisplayName,MB_OK
    25.         .endif
    26.     ;====== end menu commands ======
    А это что ? http://msdn.microsoft.com/en-us/library/ms684175(VS.85).aspx kernel32.dll
    или уже отменили ? о_О
     
  4. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    fragment
    LoadLibraryA
    LoadLibraryW
     
  5. fragment

    fragment New Member

    Публикаций:
    0
    Регистрация:
    11 июн 2008
    Сообщения:
    266
    Код (Text):
    1. .686p
    2. .model flat,stdcall
    3. option casemap:none
    4.  
    5. includelib  ./lib/kernel32.lib
    6. includelib  ./lib/user32.lib
    7. includelib  ./lib/shell32.lib
    8. includelib  ./lib/ntdll.lib
    9. includelib  ./lib/advapi32.lib
    10.  
    11. .data?
    12. Buff_1  db 260h dup(?)
    13. hFile   dd ?
    14.  
    15. .data
    16. exename db "wifdll.exe",0
    17. TextOpen db "open",0
    18.  
    19. .code
    20.  
    21.     TestProc proc
    22.  
    23. lstrcatA PROTO :DWORD,:DWORD
    24.     push offset exename
    25.     push offset Buff_1
    26.     call lstrcatA
    27.  
    28. CreateFileA PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD
    29.     push 0h
    30.     push 0h
    31.     push 2h
    32.     push 0h
    33.     push 1h+2h
    34.     push 80000000h+40000000h
    35.     push offset Buff_1
    36.     call CreateFileA
    37.  
    38.     mov hFile,eax
    39.  
    40. ;#####################################################################################################
    41.  
    42. jmp @F
    43.         file            db 04dh, 05ah, 090h, 000h, 003h, 000h, 000h, 000h, 004h, 000h
    44.                         db 000h, 000h, 0ffh, 0ffh, 000h, 000h, 0b8h, 000h, 000h, 000h
    45.                         db 000h, 000h, 000h, 000h, 040h, 000h, 000h, 000h, 000h, 000h
    46.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    47.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    48.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    49.                         db 0c8h, 000h, 000h, 000h, 00eh, 01fh, 0bah, 00eh, 000h, 0b4h
    50.                         db 009h, 0cdh, 021h, 0b8h, 001h, 04ch, 0cdh, 021h, 054h, 068h
    51.                         db 069h, 073h, 020h, 070h, 072h, 06fh, 067h, 072h, 061h, 06dh
    52.                         db 020h, 063h, 061h, 06eh, 06eh, 06fh, 074h, 020h, 062h, 065h
    53.                         db 020h, 072h, 075h, 06eh, 020h, 069h, 06eh, 020h, 044h, 04fh
    54.                         db 053h, 020h, 06dh, 06fh, 064h, 065h, 02eh, 00dh, 00dh, 00ah
    55.                         db 024h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 001h, 0bah
    56.                         db 042h, 0c7h, 045h, 0dbh, 02ch, 094h, 045h, 0dbh, 02ch, 094h
    57.                         db 045h, 0dbh, 02ch, 094h, 0cbh, 0c4h, 03fh, 094h, 042h, 0dbh
    58.                         db 02ch, 094h, 04ch, 0a3h, 0b9h, 094h, 044h, 0dbh, 02ch, 094h
    59.                         db 04ch, 0a3h, 0bdh, 094h, 044h, 0dbh, 02ch, 094h, 052h, 069h
    60.                         db 063h, 068h, 045h, 0dbh, 02ch, 094h, 000h, 000h, 000h, 000h
    61.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    62.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    63.                         db 050h, 045h, 000h, 000h, 04ch, 001h, 003h, 000h, 046h, 090h
    64.                         db 037h, 04ch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    65.                         db 0e0h, 000h, 003h, 001h, 00bh, 001h, 009h, 000h, 000h, 002h
    66.                         db 000h, 000h, 000h, 004h, 000h, 000h, 000h, 000h, 000h, 000h
    67.                         db 000h, 010h, 000h, 000h, 000h, 010h, 000h, 000h, 000h, 020h
    68.                         db 000h, 000h, 000h, 000h, 040h, 000h, 000h, 010h, 000h, 000h
    69.                         db 000h, 002h, 000h, 000h, 005h, 000h, 000h, 000h, 000h, 000h
    70.                         db 000h, 000h, 005h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    71.                         db 000h, 040h, 000h, 000h, 000h, 004h, 000h, 000h, 000h, 000h
    72.                         db 000h, 000h, 002h, 000h, 000h, 080h, 000h, 000h, 010h, 000h
    73.                         db 000h, 010h, 000h, 000h, 000h, 000h, 010h, 000h, 000h, 010h
    74.                         db 000h, 000h, 000h, 000h, 000h, 000h, 010h, 000h, 000h, 000h
    75.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 010h, 020h
    76.                         db 000h, 000h, 03ch, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    77.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    78.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    79.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    80.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    81.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    82.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    83.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    84.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 020h, 000h, 000h
    85.                         db 010h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    86.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    87.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 02eh, 074h
    88.                         db 065h, 078h, 074h, 000h, 000h, 000h, 022h, 000h, 000h, 000h
    89.                         db 000h, 010h, 000h, 000h, 000h, 002h, 000h, 000h, 000h, 004h
    90.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    91.                         db 000h, 000h, 000h, 000h, 020h, 000h, 000h, 060h, 02eh, 072h
    92.                         db 064h, 061h, 074h, 061h, 000h, 000h, 092h, 000h, 000h, 000h
    93.                         db 000h, 020h, 000h, 000h, 000h, 002h, 000h, 000h, 000h, 006h
    94.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    95.                         db 000h, 000h, 000h, 000h, 040h, 000h, 000h, 040h, 02eh, 064h
    96.                         db 061h, 074h, 061h, 000h, 000h, 000h, 027h, 000h, 000h, 000h
    97.                         db 000h, 030h, 000h, 000h, 000h, 002h, 000h, 000h, 000h, 008h
    98.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    99.                         db 000h, 000h, 000h, 000h, 040h, 000h, 000h, 0c0h, 000h, 000h
    100.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    101.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    102.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    103.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    104.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    105.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    106.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    107.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    108.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    109.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    110.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    111.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    112.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    113.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    114.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    115.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    116.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    117.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    118.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    119.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    120.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    121.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    122.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    123.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    124.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    125.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    126.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    127.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    128.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    129.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    130.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    131.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    132.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    133.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    134.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    135.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    136.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    137.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    138.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    139.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    140.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    141.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    142.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    143.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    144.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    145.                         db 000h, 000h, 000h, 000h, 06ah, 030h, 06ah, 000h, 068h, 000h
    146.                         db 030h, 040h, 000h, 06ah, 000h, 0e8h, 00ch, 000h, 000h, 000h
    147.                         db 0e8h, 001h, 000h, 000h, 000h, 0cch, 0ffh, 025h, 000h, 020h
    148.                         db 040h, 000h, 0ffh, 025h, 008h, 020h, 040h, 000h, 000h, 000h
    149.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    150.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    151.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    152.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    153.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    154.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    155.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    156.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    157.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    158.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    159.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    160.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    161.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    162.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    163.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    164.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    165.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    166.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    167.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    168.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    169.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    170.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    171.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    172.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    173.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    174.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    175.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    176.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    177.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    178.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    179.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    180.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    181.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    182.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    183.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    184.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    185.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    186.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    187.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    188.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    189.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    190.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    191.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    192.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    193.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    194.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    195.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    196.                         db 000h, 000h, 000h, 000h, 000h, 000h, 05ch, 020h, 000h, 000h
    197.                         db 000h, 000h, 000h, 000h, 078h, 020h, 000h, 000h, 000h, 000h
    198.                         db 000h, 000h, 04ch, 020h, 000h, 000h, 000h, 000h, 000h, 000h
    199.                         db 000h, 000h, 000h, 000h, 06ah, 020h, 000h, 000h, 000h, 020h
    200.                         db 000h, 000h, 054h, 020h, 000h, 000h, 000h, 000h, 000h, 000h
    201.                         db 000h, 000h, 000h, 000h, 086h, 020h, 000h, 000h, 008h, 020h
    202.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    203.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    204.                         db 000h, 000h, 05ch, 020h, 000h, 000h, 000h, 000h, 000h, 000h
    205.                         db 078h, 020h, 000h, 000h, 000h, 000h, 000h, 000h, 09bh, 000h
    206.                         db 045h, 078h, 069h, 074h, 050h, 072h, 06fh, 063h, 065h, 073h
    207.                         db 073h, 000h, 06bh, 065h, 072h, 06eh, 065h, 06ch, 033h, 032h
    208.                         db 02eh, 064h, 06ch, 06ch, 000h, 000h, 0b1h, 001h, 04dh, 065h
    209.                         db 073h, 073h, 061h, 067h, 065h, 042h, 06fh, 078h, 041h, 000h
    210.                         db 075h, 073h, 065h, 072h, 033h, 032h, 02eh, 064h, 06ch, 06ch
    211.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    212.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    213.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    214.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    215.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    216.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    217.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    218.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    219.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    220.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    221.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    222.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    223.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    224.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    225.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    226.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    227.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    228.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    229.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    230.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    231.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    232.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    233.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    234.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    235.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    236.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    237.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    238.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    239.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    240.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    241.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    242.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    243.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    244.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    245.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    246.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    247.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0cfh, 0f0h
    248.                         db 0eeh, 0e3h, 0f0h, 0e0h, 0ech, 0ech, 0e0h, 020h, 0edh, 0e5h
    249.                         db 020h, 0f0h, 0e0h, 0e1h, 0eeh, 0f2h, 0e0h, 0e5h, 0f2h, 020h
    250.                         db 0edh, 0e0h, 020h, 0efh, 0ebh, 0e0h, 0f2h, 0f4h, 0eeh, 0f0h
    251.                         db 0ech, 0e5h, 020h, 04eh, 054h, 02eh, 000h, 000h, 000h, 000h
    252.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    253.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    254.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    255.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    256.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    257.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    258.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    259.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    260.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    261.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    262.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    263.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    264.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    265.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    266.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    267.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    268.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    269.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    270.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    271.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    272.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    273.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    274.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    275.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    276.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    277.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    278.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    279.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    280.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    281.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    282.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    283.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    284.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    285.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    286.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    287.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    288.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    289.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    290.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    291.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    292.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    293.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    294.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    295.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    296.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    297.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    298.                         db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    299.  
    300. filelen                 equ 2560d
    301.  
    302. ;#####################################################################################################
    303.  
    304. @@:
    305. WriteFile PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD
    306.     push 0h
    307.     push 0h
    308.     push filelen
    309.     push offset file
    310.     push hFile
    311.     call WriteFile
    312.  
    313. CloseHandle PROTO :DWORD
    314.     push hFile
    315.     call CloseHandle
    316.  
    317. ShellExecuteA PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD
    318.     push 0
    319.     push 0
    320.     push 0
    321.     push offset Buff_1
    322.     push offset TextOpen
    323.     push 0
    324.     call ShellExecuteA
    325.  
    326. ExitProcess PROTO :DWORD
    327.     push eax
    328.     call ExitProcess
    329.  
    330. TestProc endp
    331. End TestProc

    LINK : warning LNK4216: Exported entry point _TestProc@0
    Creating library tstdll.lib and object tstdll.exp
    tstdll.dll : warning LNK4086: entrypoint '_TestProc@0' is not __stdcall with 12
    bytes of arguments; image may not run


    до SellExecute программа не доходит , вылетает , почему ? Что не так с названиями функций ?
    что без 12 байт аргументов маин процедура не работает , что за бред?)
     
  6. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    fragment
    это у тя дллка? конечно она грохнется с Exported entry point _TestProc@0 если её как sdtcall вызывать

    ps точнее грохнется загрузчик, т.к. он передаёт ей 3 параметра и расчитывает что она их из стека при выходе удалит
    а у тебя не удаляет.
    у него разбалансируется стек
     
  7. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    fragment
    мен должна быть у дллки только такой
    proc hInstDLL:lol: WORD, reason:lol: WORD, unused:lol: WORD
     
  8. K10

    K10 New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2008
    Сообщения:
    1.590
    точка входа в ДЛЛ принимает 3 дворда в стеке, у тебя ни одного.

    тоже перл
    Код (Text):
    1.     call ShellExecuteA
    2.  
    3. ExitProcess PROTO :DWORD
    4.     push eax
    5.     call ExitProcess
     
  9. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    fragment
    так ты ещё в dllmain кучу разного функционала выполняеш..
    смотри MSDN там есть на это ограничения
     
  10. fragment

    fragment New Member

    Публикаций:
    0
    Регистрация:
    11 июн 2008
    Сообщения:
    266
    Огромное спасибо! Всё понятно. DLL первая , тестовая. В финале будет хранить только ресурсы и пару функций , параметы маину будем передавать , только вот непонятно какие и зачем они ей.
     
  11. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    fragment
    тебя некому заставить открыть MSDN?
    ему параметры передаёт системный загрузчик. или ты отважился с текущими знаниями свой загрузчик писать?
     
  12. fragment

    fragment New Member

    Публикаций:
    0
    Регистрация:
    11 июн 2008
    Сообщения:
    266
    Хорошо а пачему в эксемпле ищется и вызывается TestProc а не MainProc ?
     
  13. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    fragment
    http://wasm.ru/article.php?article=1001017