MASM & VC++

Тема в разделе "WASM.WIN32", создана пользователем arrrg, 4 сен 2009.

  1. arrrg

    arrrg New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2009
    Сообщения:
    124
    .lib файл
    Код (Text):
    1. !<arch>
    2. /               1252083743              0       198       `
    3.        ј  Љ  ґ  ґ  v  v__IMPORT_DESCRIPTOR_NetStream __NULL_IMPORT_DESCRIPTOR NetStream_NULL_THUNK_DATA _InitNetStream@12 __imp__InitNetStream@12 _CreateConsole@16 __imp__CreateConsole@16 /               1252083743              0       208       `
    4.      ј  Љ  ґ  v            _CreateConsole@16 _InitNetStream@12 __IMPORT_DESCRIPTOR_NetStream __NULL_IMPORT_DESCRIPTOR __imp__CreateConsole@16 __imp__InitNetStream@12 NetStream_NULL_THUNK_DATA NetStream.dll/  1252083743              0       618       `
    5. L HЎJ„     а                                                                                                                                                                                                                     .idata$2           D  X         @ 0А.idata$6           v  X          @  А                                          NetStream.dll @comp.idЋ яя                  .idata$2@  А   h .idata$6        .idata$4@  А    h .idata$5@  А    h     "                ;            V   __IMPORT_DESCRIPTOR_NetStream __NULL_IMPORT_DESCRIPTOR NetStream_NULL_THUNK_DATA NetStream.dll/  1252083743              0       145       `
    6. L HЎJP         .idata$3           <               @ 0А                    @comp.idЋ яя                     __NULL_IMPORT_DESCRIPTOR
    7. NetStream.dll/  1252083743              0       175       `
    8. L HЎJl         .idata$5           d               @ 0А.idata$4           h               @ 0А        @comp.idЋ яя                     NetStream_NULL_THUNK_DATA
    9. NetStream.dll/  1252083743              0       514       `
    10. L HЎJр        .text              ґ   є            `.idata$5           Д   И          @0А.idata$4           Т   Ц          @0А.idata$6           а               @ Ая%                                           CreateConsole @comp.idЋ яя   .text                            
    11.            .idata$5                                     .idata$4                     .idata$6                                      :   __imp__CreateConsole@16 __IMPORT_DESCRIPTOR_NetStream NetStream.dll/  1252083743              0       514       `
    12. L HЎJр        .text              ґ   є            `.idata$5           Д   И          @0А.idata$4           Т   Ц          @0А.idata$6           а               @ Ая%                                          InitNetStream @comp.idЋ яя   .text                            
    13.            .idata$5                                     .idata$4                     .idata$6                                      :   __imp__InitNetStream@12 __IMPORT_DESCRIPTOR_NetStream
    .asm файл
    Код (Text):
    1. ; ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
    2.     include \masm32\include\masm32rt.inc
    3.     include \masm32\include\windows.inc
    4.     include NetStream.inc
    5. ; ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
    6.  
    7.     ; -------------------------------------------
    8.     ; Build this DLL with the provided MAKEIT.BAT
    9.     ; -------------------------------------------
    10.       .data
    11.       ID dd 0
    12.       Mode dd 0
    13.       useConsole dd 1
    14.       IDD_DLG1 dd 1000
    15.       .data?
    16.         hInstance dd ?
    17.  
    18.       .code
    19.  
    20. ; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««
    21.  
    22. LibMain proc instance:DWORD,reason:DWORD,unused:DWORD
    23.  
    24.     .if reason == DLL_PROCESS_ATTACH
    25.       mrm hInstance, instance       ; copy local to global
    26.       mov eax, TRUE                 ; return TRUE so DLL will start
    27.  
    28.     .elseif reason == DLL_PROCESS_DETACH
    29.  
    30.     .elseif reason == DLL_THREAD_ATTACH
    31.  
    32.     .elseif reason == DLL_THREAD_DETACH
    33.  
    34.     .endif
    35.  
    36.     ret
    37.  
    38. LibMain endp
    39.  
    40. InitNetStream proc is_console_enabled:DWORD,mode:DWORD,_id:DWORD
    41. mov eax,_id
    42. mov ID,eax
    43. mov eax,mode
    44. mov Mode,eax
    45. mov eax,is_console_enabled
    46. mov useConsole,eax
    47. invoke InitCommonControls
    48. invoke DialogBoxParamA,hInstance,IDD_DLG1,NULL,offset CreateConsole,WM_INITDIALOG
    49. ret
    50. InitNetStream endp
    51.  
    52. CreateConsole proc hWin:DWORD,uMsg:DWORD,wParam:DWORD,lParam:DWORD
    53. Switch uMsg
    54.  
    55. Case WM_INITDIALOG
    56.  
    57. Case WM_CLOSE
    58. invoke EndDialog,hWin,0
    59. invoke PostQuitMessage,NULL
    60.         return 0
    61. Endsw
    62. xor eax,eax
    63. ret
    64. CreateConsole endp
    65.  
    66.  
    67. ; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««
    68.  
    69.   comment * -----------------------------------------------------
    70.           You should add the procedures your DLL requires AFTER
    71.           the LibMain procedure. For each procedure that you
    72.           wish to EXPORT you must place its name in the "NetStream.def"
    73.           file so that the linker will know which procedures to
    74.           put in the EXPORT table in the DLL. Use the following
    75.           syntax AFTER the LIBRARY name on the 1st line.
    76.           LIBRARY NetStream
    77.           EXPORTS YourProcName
    78.           EXPORTS AnotherProcName
    79.           ------------------------------------------------------- *
    80.  
    81. ; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««
    82.  
    83. end LibMain
     
  2. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Например так:
    Код (Text):
    1. extern "C" int _stdcall InitNetStream(bool is_console_enabled, int mode, int id);
    2.  
    3. int main (int argc, char* argv[])
    4. {
    5.     InitNetStream(true, 0, 0);
    6. }
     
  3. arrrg

    arrrg New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2009
    Сообщения:
    124
    ничего нового
    1>NetStream.lib(NetStream.dll) : fatal error LNK1313: обнаружен модуль ijw/native; не удается выполнить компоновку с модулями pure
    библиотека компилирована с ключами /SUBSYSTEM:WINDOWS /DLL /DEF:NetStream.def NetStream.obj
     
  4. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    arrrg
    К чему ты линкуешь?
     
  5. arrrg

    arrrg New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2009
    Сообщения:
    124
    в смысле "к чему"
     
  6. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    arrrg
    Программа к которой линкуешь библиотеку, нативная или дот. нет?
     
  7. arrrg

    arrrg New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2009
    Сообщения:
    124
    хм...дотнет я никогда не использовал и не знаю вообще что это такое,так что наверно нативная)
     
  8. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    В .cpp файл:
    #pragma comment (lib, "DllName.lib")
     
  9. arrrg

    arrrg New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2009
    Сообщения:
    124
    уже делал
     
  10. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Тогда я пасс. Как понимаю выкладывать библиотеку не хочешь(аттачем), а иначе разобраться не возможно.
     
  11. arrrg

    arrrg New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2009
    Сообщения:
    124
    саму dll?
     
  12. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Конечно саму dll и lib.
     
  13. arrrg

    arrrg New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2009
    Сообщения:
    124
    ок
    вот посыл на скачку(архив) -
    http://file.qip.ru/file/99940007/2484e847/1_online.html
    по сути мне нужно просто подключить dll,функции я доделаю после того,как разберусь с подключением
     
  14. onSide

    onSide New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2008
    Сообщения:
    476
    Ты жжошь, она же ничего не экспортирует :lol:
     
  15. arrrg

    arrrg New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2009
    Сообщения:
    124
    непонял
    а разве в def файле не описываеются функции к экспорту?
     
  16. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Собраться то проект собрался. Но dll конечно бага, а на dll.
     
  17. arrrg

    arrrg New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2009
    Сообщения:
    124
    блин,я нету библиотеку в архив кинул...
    вот посыл на нормальную -
    http://file.qip.ru/file/99941638/2327bdc2/NetStream.html
     
  18. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Тогда всё должно быть пучком.
     
  19. arrrg

    arrrg New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2009
    Сообщения:
    124
    всё и так пучком
    спасибо
    всё стало понятно...я пробовал добавить dll в приложение windows forms...
     
  20. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    arrrg
    А кто утверждал, что приложение нативное? ^)