Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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-формате? (тогда её всё равно разбирать и
конвертить...)



Страницы: 1 вся ветка

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

Наверх




Память: 0.45 MB
Время: 0.006 c
6-81030
Realizator
2002-02-13 09:49
2002.04.25
Интересно, хоть кто-нибудь смог бы написать РАБОЧИЙ Telnet? Под сервер UNIX никак не пашет!


3-80794
vitnt2000
2002-04-03 06:42
2002.04.25
SQL Запрос


4-81112
Tundra
2002-02-17 15:37
2002.04.25
Как определить версию windows(95,98,me,nt,2000,xp)?


3-80799
Марина
2002-04-05 09:11
2002.04.25
Table is busy.User:???


1-80967
DenKop
2002-04-11 13:35
2002.04.25
Сообщение другой программе.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский