Здравствуйте, Аноним, Вы писали:
А>Да я просто отчаялся получить помоши по етой проблеме... А>А как зделати LibTest ехпортируемым?
А>Честное слово, целыи день серчил интернет, не нашел.
А!!! Понял!!!
Ты же не указал при компиляции+линковке test.cpp, что нужно брать библиотеку mylib.lib
Как это делается в BCC — затрудняюсь сказать. Смотри руководства по компилятору и прочему.
Перекуём баги на фичи!
Re[10]: Как экспортировать-импортировать класс
От:
Аноним
Дата:
23.06.03 17:25
Оценка:
Да он (bcc32) вроде долjен сам брать из той же директории.
Заметил только чито в других lib-ах, если зделати листинг (tlib mylib, list.lst), модули имеют public classes. Моя mylib.lib при листинге толико следуюшии line:
Здравствуйте, Аноним, Вы писали:
А>Да он (bcc32) вроде долjен сам брать из той же директории.
Что-то я сомневаюсь...
Все-таки попробуй линкеру явно сказать, мол, вот тебе mylib.lib.
А>Заметил только чито в других lib-ах, если зделати листинг (tlib mylib, list.lst), модули имеют public classes.
Другие библиотеки — могут быть нарезаны на obj-файлы как угодно, например, по классам и даже по отдельным функциям.
А>Моя mylib.lib при листинге толико следуюшии line:
А>public by module: А> mylib size 8
Правильно: mylib.lib должна mylib.obj.
Вот только — .obj ли она содержит (из 8 байт)?
Только хелп к борландовским bcc, tlib, tlink тебя спасет...
Перекуём баги на фичи!
Re[12]: Как экспортировать-импортировать класс
От:
Аноним
Дата:
24.06.03 08:42
Оценка:
Пробовал явно указать include и библиотеку — все равно не работает.
bcc32 -IPath_to_Include -LPath_To_Lib test.cpp
Хелп бесполезный.
Я в шоке — неужели такую простую веши нельзя нормально описать...
Vot oshibki:
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
test.cpp:
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Error: Unresolved external 'LibTest::~LibTest()' referenced from C:\TEST\TEST.OBJ
Error: Unresolved external 'LibTest::LibTest()' referenced from C:\TEST\TEST.OBJ
Error: Unresolved external 'LibTest::hello()' referenced from C:\TEST\TEST.OBJ
Здравствуйте, Аноним, Вы писали:
А>Пробовал явно указать include и библиотеку — все равно не работает.
А>bcc32 -IPath_to_Include -LPath_To_Lib test.cpp
А>Хелп бесполезный. А>Я в шоке — неужели такую простую веши нельзя нормально описать...
А>Vot oshibki: А>Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland А>test.cpp: А>Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland А>Error: Unresolved external 'LibTest::~LibTest()' referenced from C:\TEST\TEST.OBJ А>Error: Unresolved external 'LibTest::LibTest()' referenced from C:\TEST\TEST.OBJ А>Error: Unresolved external 'LibTest::hello()' referenced from C:\TEST\TEST.OBJ
Это понятно: неправильно собралась и/или подцепилась библиотека.
Я по-прежнему сомневаюсь, что tlink будет искать в каталоге все мыслимые .lib-файлы. Скорее всего, он по умолчанию линкует только стандартный си-рантайм. Все сторонние библиотеки ему нужно указать поштучно.
Что касается сборки библиотеки.
1) Попробуй еще раз совершить обряд mylib.obj -> mylib.lib. Посмотри на все опции...
2) Попробуй вообще обойтись без библиотеки, линкуя .obj
bcc32 /c test.cpp
tlink test.obj mylib.obj
Предложение по регламенту.
Давай перенесем этот вопрос в форум "Средства Разработки". Я уже повесил бомбочку.
Заодно — пора бы уж зарегистрироваться, э?
Здравствуйте, Кодт, Вы писали:
К>bcc32 /c test.cpp К>tlink test.obj mylib.obj
А вот так работать не будет — bcc32, вызывая tlink, кроме самих объектников передает ему рантаймовскую библиотеку и несколько ключей, и при ручном вызове tlink надо все это прописывать самому. Из легких путей правильные "bcc32 test.cpp mylib.obj" (или .lib) и даже "bcc32 /c test.cpp; bcc32 test.obj mylib.obj".