Re[4]: LIB из DLL. Как?
От: Anatolix Россия https://www.linkedin.com/in/anatolix/
Дата: 23.04.02 11:30
Оценка: 1 (1)
Z>>Здравствуйте Lefay, Вы писали:

L>>>Не совсем понятно, что значит lib файл для dll библиотеки. Тут уж

L>>>что-нить одно — либо dll(динамическая библиотека) либо lib(статическая)

Z>>Ну почему же? В lib'е могут быть заглушки к dll.

L>Это то известно, но тогда зачем эту либу к проекту подцеплять,
L>я и говорю — туториал посмотреть надо, а без сорцов конечно можно
L>новую библиотеку скомпилить, но это весьма гемеройно

Вот инструкция по получению, на примере библиотеки qt-mt302.dll

Натравливаем на dll dumpbin

dumpbin /exports qt-mt302.dll > qt-mt302.def

Получаете примерно следующее

Microsoft (R) COFF Binary File Dumper Version 6.00.8447
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.

Dump of file qt-mt302.dll

File Type: DLL

Section contains the following exports for qt-mt302.dll

0 characteristics
3C8405B9 time date stamp Tue Mar 05 04:39:37 2002
0.00 version
1 ordinal base
14402 number of functions
14402 number of names

ordinal hint RVA name

1 0 0005877C ??0?$QAsciiDict@VQConnectionList@@@@QAE@ABV0@@Z
2 1 0005875A ??0?$QAsciiDict@VQConnectionList@@@@QAE@H_N0@Z
3 2 00005FD7 ??0?$QAsciiDictIterator@VQConnectionList@@@@QAE@ABV0@@Z
4 3 000060BE
??0?$QAsciiDictIterator@VQConnectionList@@@@QAE@ABV?$QAsciiDict@VQConnectionList
@@@@@Z
5 4 0004C360 ??0?$QDict@VQLibrary@@@@QAE@ABV0@@Z
6 5 0004C340 ??0?$QDict@VQLibrary@@@@QAE@H_N@Z
7 6 00031C41 ??0?$QDict@VQStyleSheetItem@@@@QAE@ABV0@@Z
8 7 00031C21 ??0?$QDict@VQStyleSheetItem@@@@QAE@H_N@Z
9 8 00034CE4 ??0?$QDict@VQTextFormat@@@@QAE@ABV0@@Z
10 9 00034CC4 ??0?$QDict@VQTextFormat@@@@QAE@H_N@Z
11 A 0014D1C8 ??0?$QIntDict@H@@QAE@ABV0@@Z

Вы эту хрень надо маленько подредактировать чтобы получить настоящий def файл
(Удаляете весь заголовок, лишние столбцы, и дописываете заголовок
def файла). Получиться должно примерно так:

LIBRARY qt-mt302
EXPORTS

??0?$QAsciiDict@VQConnectionList@@@@QAE@ABV0@@Z
??0?$QAsciiDict@VQConnectionList@@@@QAE@H_N0@Z
??0?$QAsciiDictIterator@VQConnectionList@@@@QAE@ABV0@@Z
??0?$QAsciiDictIterator@VQConnectionList@@@@QAE@ABV?$QAsciiDict@VQConnectionList
@@@@@Z
??0?$QDict@VQLibrary@@@@QAE@ABV0@@Z
??0?$QDict@VQLibrary@@@@QAE@H_N@Z
??0?$QDict@VQStyleSheetItem@@@@QAE@ABV0@@Z
??0?$QDict@VQStyleSheetItem@@@@QAE@H_N@Z
Теперь вы на все это натравливаете Lib

lib /DEF:qt-mt302.def

В результате получаете qt-mt302.lib который используете в проекте
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.