Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.25;
Скачать: [xml.tar.bz2];




Вниз

Lib файл 


Darlok   (2002-04-10 18:41) [0]

Кто - нить побскажет, как можно в Delphi подключить Lib Файл.

А то у меня проблема значит такая:

Создал на CBuildere библиотеку Lib. В ней есть некая функция
int __stdcall MyFunk(int).

Включил ее в проект на Delphi.

И в юните написал:
function MyFunk(x:int):int; stdcall; external "Lib.lib";

Линковщик кричит:

[Linker Error] Unresolved external "MyFunk" referenced from XPOUNIT.OBJ

А если напишу:
function MyFunk(x:int):int; stdcall; external;

То кричит уже компилятор:

[Pascal Error] XPOUnit.pas(826): Unsatisfied forward or external declaration: "MyFunk"

Чего еще делать я уже не знаю :(



Darlok   (2002-04-10 18:45) [1]

Может в Lib файле хитро изменяются имена, как VC при экспорте из Dll делает :0)



PVOzerski   (2002-04-10 18:51) [2]

Такой синтаксис:
function MyFunk(x:int):int; stdcall; external "Lib.lib";
применим только к dll.
Статические объектные файлы линкуются так:
{$L lib.obj} function MyFunk(x:int):int; stdcall; external;
Но вот статическую библиотеку Вам придется разбирать на объектные файлы вручную и линковать их
по отдельности. И еще: проверьте соответствия public-имен! C++ развлекается тем, что добавляет к имени
служебную информацию, это надо учитывать при объявлении имени в Delphi.



SPeller   (2002-04-10 20:23) [3]

Попробуй через LoadLibrary



Darlok   (2002-04-11 12:40) [4]

>SPeller © (10.04.02 20:23)
LoadLibrary позволяет только динамически связывать библиотеку, и работает только для Dll но не Lib.

А мне надо статически включить библиотеку в Exe на этапе проектирования. Тобиш чтобы был оди Exeшник а Lib был внутри его.



Darlok   (2002-04-11 12:43) [5]

>PVOzerski © (10.04.02 18:51)
А для чего тогда Lib файлы, если их все равно надо бить на Obj



Alx2   (2002-04-11 12:50) [6]

Lib - для C



PVOzerski   (2002-04-11 15:17) [7]

К тому, что сказал Alx2 © (11.04.02 12:50), можно добавить только пару слов:
1) Если есть основания полагать, что Вам понадобится ВСЯ библиотека, может, её можно
собрать в один obj-файл?
2) А ежели эта самая библиотека еще и стандартные функции C RTL возжаждет? (не универсальная
подсказка на этот случай: опишите их как cdecl; external "crtdll.dll" ; - это часто выручает);
3) А ежели эта самая библиотека еще и в COFF-формате? (тогда её всё равно разбирать и
конвертить...)




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.25;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.73 MB
Время: 0.021 c
1-80950           dr_neo                2002-04-11 21:54  2002.04.25  
Выделение отдельных слов в тексте


6-81016           Phobos_kx             2002-02-11 19:35  2002.04.25  
Помогите пожалуйста!!! как переслать Image через Socket


1-80876           Minster               2002-04-12 22:57  2002.04.25  
Что означает свойство Tag во всех компонентах?


6-81025           shapotkin             2002-02-15 09:51  2002.04.25  
Как скачать файл по FTP с применением ProgressBar


3-80736           Lt. Dennis            2002-04-03 16:46  2002.04.25  
Возникла непонятная проблема со связкой IBQuery + IBUpdateSQL