WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  C / C++ / Visual C++
  DLL -> LIB via DEF? (decorated names)

СПРОСИТЬ  +LIB+via+DEF|QUS|+(decorated+names)">ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   DLL -> LIB via DEF? (decorated names)
bmorozov опубликован 18-05-2001 18:53 MSK   Click Here to See the Profile for bmorozov   Click Here to Email bmorozov  
Добрый день.
Проблема:
- имею DLL, в которой определена MyFunc, и именно так там и определена (не декорирована)
- имею программу, которая вызывает _MyFunc@4
- хочу построить LIB, которая правильно определит эту функцию.

В соответствии с рекомендациями MS пишу DEF-файл и запускаю LIB.EXE.

Если в DEF пишу MyFunc, то программа не линкуется;
если в DEF пишу _MyFunc@4, то не назодится в DLL;
варианты MyFunc=_MyFunc@4 и _MyFunc@4=MyFunc дают один из этих вариантов.

В чужой LIBе вижу:
Symbol name : _MyFunc@4
Type : code
Name type : undecorate
Name : MyFunc

В своей:
Symbol name : _MyFunc@4
Type : code
Name type : no prefix
Name : _MyFunc@4

Как повторить чужое достижение?
Борис

Rush опубликован 20-05-2001 01:37 MSK     Click Here to See the Profile for Rush  Click Here to Email Rush     
Вот всматривался я в текст, всматривался, вчитывался вчитывался. Всё таки уломал ты меня MSVS запустить :) Надеюсь скоро дать ответ :)
Rush опубликован 20-05-2001 01:51 MSK     Click Here to See the Profile for Rush  Click Here to Email Rush     
Как ни странно, но дела обстоят именно так :) Я бы посоветовал вот что:
1) Импортировать функции по номеру (его можно подсмотреть утилитой depends.exe):
LIBRARY NOT_MY_LIB
EXPORTS
Function1@4 @1
Function2@8 @2
Function3@4 @3
2) Импортировать ф-ции динамически с помощью LoadLibrary и GetProcAddress

СПРОСИТЬ  +LIB+via+DEF|QUS|+(decorated+names)">ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.