Cywin1.dll и вызов функций из него. вопрос

Тема в разделе "WASM.WIN32", создана пользователем KiNDeR, 11 окт 2007.

  1. KiNDeR

    KiNDeR New Member

    Публикаций:
    0
    Регистрация:
    13 июн 2003
    Сообщения:
    258
    Адрес:
    Russia
    играюсь и этой либой, и при вызове функции выхода, вываливаюсь с ошибкаой
    в отладике вижу, что O 0 LastErr ERROR_INVALID_HANDLE (00000006)

    Код (Text):
    1.         format PE CONSOLE 4.0
    2.         entry main
    3.         stack 10000h
    4.  
    5.         include '%fasminc%/win32a.inc'
    6.  
    7. section '.code' code readable executable
    8.  
    9.  main:
    10.               xor       ebx,ebx
    11.               push      ebx
    12.               call      [exit]
    13.  
    14.  
    15. section '.idata' import data readable writeable
    16.  
    17.         library cygwin1,'cygwin1.dll'
    18.  
    19.         include '%fasminc%/apia/cygwin1.inc'
    как же тогда вызывать функции с этой либы???

    а вызов функции socket из этой же либы, зацикливает прогу, при входе в эту функцию попадаем на бесконечный цикл...
     
  2. KiNDeR

    KiNDeR New Member

    Публикаций:
    0
    Регистрация:
    13 июн 2003
    Сообщения:
    258
    Адрес:
    Russia
    что ни кто не сталкивался с данной либой?
     
  3. KiNDeR

    KiNDeR New Member

    Публикаций:
    0
    Регистрация:
    13 июн 2003
    Сообщения:
    258
    Адрес:
    Russia
    вопрос решен!!!

    Код (Text):
    1. format pe console
    2. include 'win32ax.inc'
    3. cygwin dd ?
    4. main:
    5.     *sub    esp, 4096*
    6.     call    LoadLibrary ,'cygwin1.dll'
    7.     mov [cygwin], eax
    8.     call    GetProcAddress  ,[cygwin], 'cygwin_dll_init'
    9.     call    eax
    10. @@: call    GetProcAddress  ,[cygwin], 'exit'
    11.     call    eax ,1234567
    12.     ret
    13. .end    main
    или так
    Код (Text):
    1. format pe console
    2. include 'win32ax.inc'
    3. main:
    4.     sub esp, 4096
    5.     call    cygwin_dll_init
    6.     call    exit    ,1234567
    7.     ret
    8. .end    main
    from faq: "1. Make sure you have 4K of scratch space at the bottom of your stack."
    что в переводе, означает - откуси от стека 4 кило...