MASM32 как создать библиотеку из DLL

Тема в разделе "WASM.BEGINNERS", создана пользователем aptyp, 25 дек 2008.

  1. aptyp

    aptyp Member

    Публикаций:
    0
    Регистрация:
    17 сен 2008
    Сообщения:
    81
    Пробую программу LIB.exe из M32v10r таким образом,

    lib /out: kernel32.dll kernel32.lib(или .obj)

    пишет ошибку LINK : fatal error LNK1181: cannot open input file "kernel32.lib"
     
  2. K10

    K10 New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2008
    Сообщения:
    1.590
    тебе слово out о чем-нибудь говорит?
     
  3. aptyp

    aptyp Member

    Публикаций:
    0
    Регистрация:
    17 сен 2008
    Сообщения:
    81
    говорит, но и так и сяк пробовал, запутался уже
     
  4. aptyp

    aptyp Member

    Публикаций:
    0
    Регистрация:
    17 сен 2008
    Сообщения:
    81
    пробовал так,
    LIB.exe C:\WINDOWS\system32\kernel32.dll /out:kernel32.lib
    ошибка такая теперь
    C:\WINDOWS\system32\kernel32.dll : fatal error LNK1136: invalid or corrupt file


    Пробовал IMPLIB из DXSDK. Ещё программу lib2def. Правильного LIB не получилось.

    Пока взял готовую библиотеку из http://sourceforge.net/projects/implib/, странно эти lib'ы правильно работают в MASM32.
     
  5. irrona

    irrona Member

    Публикаций:
    0
    Регистрация:
    26 май 2004
    Сообщения:
    178
    Адрес:
    Тирасполь
    aptyp

    У меня получилось. Вот ссылка http://support.microsoft.com/kb/131313.

    Если трудности с буржуйским, то объясняю на примере библиотеки user32.dll:
    1) Из каталога bin запускаешь утилиту dumpbin.exe (DUMPBIN.EXE /EXPORTS "c:\windows\system32\user32.dll" > user32.def). В результате получаешь файл user32.def.
    2) удаляешь из этого файла всё, оставляя только ординалы и названия функций.
    3) в самом верху файла над названиями функций добавляешь заголовок
    Код (Text):
    1. LIBRARY user32
    2. EXPORTS
    4) Получаешь реальный def-файл, который выглядит примерно так:
    Код (Text):
    1. LIBRARY user32
    2.  
    3. EXPORTS
    4.           1   ActivateKeyboardLayout
    5.           2   AdjustWindowRect
    6.           3   AdjustWindowRectEx
    7.           4   AlignRects
    8.           5   AllowForegroundActivation
    9.           6   AllowSetForegroundWindow
    10.           .....
    5) После этого можно использовать утилиту lib.exe (LIB.EXE /DEF:user32.def /OUT:user32.lib). На выходе получаешь user32.lib.
     
  6. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    http://wasm.ru/article.php?article=1018001