rtl60.bpl не найден
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.217.96] |
|
|
rtl60.bpl не найден
|
Сообщ.
#1
,
|
|
|
|
Я написал программу на C++ Builder 6.0. При запуске на компьютере, где Билдер не установлен выдается ошибка:
"Приложению не удалось запуститься, поскольку rtl60.bpl не был найден. Повторная установка приложения может исправить эту проблему". Проблема в том, что у меня, естественно, в опциях проекта сняты галочки с "Build with runtime packages" и "Use dynamic RTL". Что мне ещё надо поменять, чтобы программа смогла запуститься? Заранее всем спасибо. |
|
Сообщ.
#2
,
|
|
|
|
Вкладка Compiler = Нажать Release
Вкладка Packages = снять галку Build witch.. (В самом низу) |
|
Сообщ.
#3
,
|
|
|
|
Цитата Kamenev_D @ Вкладка Compiler = Нажать Release Вкладка Packages = снять галку Build witch.. (В самом низу) Все эти настройки у меня уже были. Не запустилось. |
|
Сообщ.
#4
,
|
|
|
|
Меню Build имя проекта
|
|
Сообщ.
#5
,
|
|
|
|
Цитата trainer @ Меню Build имя проекта Не понял. В смысле собрать проект не при помощи "Run", а нажатием Build "Project1"? Я так и делал |
|
Сообщ.
#6
,
|
|
|
|
Заходишь в вкладку "Linker" снимаешь галочку "use dynamic RTL".
Добавлено Если уже сделал, то попробуй еще раз. Было у меня такое, что Билдер опции не запоминал... Потом Project->Build. |
|
Сообщ.
#7
,
|
|
|
|
|
Сообщ.
#8
,
|
|
|
|
shm
Доброго времени суток..подскажите пожалуста где в билдере находятся все нужные библиотеки... |
|
Сообщ.
#9
,
|
|
|
|
Цитата test4me @ Доброго времени суток..подскажите пожалуста где в билдере находятся все нужные библиотеки... К сожалению мне неизвестно какие библиотеки вам нужны. ДА и вообще не совсем ясно, что подразумевается под словом "библиотека" в контексте данной темы. Бинарники компонентов Билдера (*.bpl) лежал в <путь к каталогу Билдера>\bin. |
|
Сообщ.
#10
,
|
|
|
|
доброго времени суток! попробую описать ситуацию...сделал проект где должна получится DLL..подключив ее на компьютере где был билдер работает все нормально, но на другом компьютере выдала ошибку где сообщалось о том что не может найти библиотеку vcl60.bpl...естественно я ее повторно скомпилировал где в опциях снял галочки Link with Dynamic RTL и Build with runtime packages. но при компиляции появились другие ошибки..поискал vcl60.bpl и нашел его в системной папке C:\Windows\SysWOW64..ошибки такие:
[Linker Error] Unresolved external '__fastcall Dialogs::ShowMessage(const System::AnsiString)' referenced from C:\PROGRAM FILES (X86)\BORLAND\CBUILDER6\PROJECTS\PRIMER.OBJ [Linker Error] Unresolved external 'Forms::Application' referenced from C:\PROGRAM FILES (X86)\BORLAND\CBUILDER6\PROJECTS\PRIMER.OBJ [Linker Error] Unresolved external '__fastcall Forms::TApplication::MessageBox(const char *, const char *, int)' referenced from C:\PROGRAM FILES (X86)\BORLAND\CBUILDER6\LIB\RELEASE\VCLE.LIB|_t_Forms в чем ошибка? немогу понять...буду рад любому ответу...нужно срочно с уважением test4me |
|
Сообщ.
#11
,
|
|
|
|
Можно попробовать переустановить Билдер.
Добавлено Другие проект с такими же проблемами компилируются? |
|
Сообщ.
#12
,
|
|
|
|
да тоже самое...2 раза переустановил...может скачать новый дистрибутив? как думаете в чем может быть проблема?
|
|
Сообщ.
#13
,
|
|
|
|
Цитата shm @ Другие проект с такими же проблемами компилируются? |
|
Сообщ.
#14
,
|
|
|
|
нет тоже нет...тоесть я аналогичное делал...под разными именами аналогичный код после переустановки билдера
Добавлено если есть линк нормального диструбутива...этот устанавливал со старого диска |
|
Сообщ.
#15
,
|
|
|
|
скачал еще диструбутив..переустановил...но тоже самое..но может проблема в операционной системе? у меня 8-ка х64
|
|
Сообщ.
#16
,
|
|
|
|
Возможно опять эта проблема ANSI-Уникод. Попробуйте въявную написать ShowMessageW или ...A и др. такие функции и испытать. Дистрибутив, скорее всего, нормальный. Не в нём дело.
|
|
Сообщ.
#17
,
|
|
|
|
Славян
закоментировал ShowMessage..но остальные 2 ошибки? какаято проблема в объекте при линковке...что может быть? |
|
Сообщ.
#18
,
|
|
|
|
Цитата test4me @ но тоже самое..но может проблема в операционной системе? Возможно, если че на хр-32 и 7-32 точно работает, правда на семерке не без глюков. |
|
Сообщ.
#19
,
|
|
|
|
доброго времени суток! создал другой проект..на форму кинул кнопку и при нажатии на нее ShowMessage("")...все скомпилировалось прекрсно и работает на машине где нет библиотек...но это была апликация...а как создаю dll компилится все если галочка стоит..как убираю вылазит эта ошибка
[Linker Error] Unresolved external '__fastcall Dialogs::ShowMessage(const System::AnsiString)' referenced from C:\PROGRAM FILES (X86)\BORLAND\CBUILDER6\PROJECTS\PRIMER.OBJ [Linker Error] Unresolved external 'Forms::Application' referenced from C:\PROGRAM FILES (X86)\BORLAND\CBUILDER6\PROJECTS\PRIMER.OBJ [Linker Error] Unresolved external '__fastcall Forms::TApplication::MessageBox(const char *, const char *, int)' referenced from C:\PROGRAM FILES (X86)\BORLAND\CBUILDER6\LIB\RELEASE\VCLE.LIB|_t_Forms Добавлено Цитата такчто это исключается...чтото происходит при линковке dll.. Возможно, если че на хр-32 и 7-32 точно работает, правда на семерке не без глюков. |
|
Сообщ.
#20
,
|
|
|
|
Если есть кирилица в пути проекта, то измени на латынь.
пример C:\бла\бла\myproekt измени на C:\bla\bla\myproekt Бывает путь до проекта в кириллице не обрабатывает. |
|
Сообщ.
#21
,
|
|
|
|
Цитата test4me @ Так, так! Поподробнее! Т.е. одна ошибка пропала? Тогда - Ура! И пробуем написать ShowMessageW и смотрим рождает она ошибку или нет. Кстати, MessageBoxW такая же. Так что и с ней испытываем оба варианта. А дальше будем смотреть! закоментировал ShowMessage..но остальные 2 ошибки? какаято проблема в объекте при линковке...что может быть? |
|
Сообщ.
#22
,
|
|
|
|
Aibolit
Цитата Если есть кирилица в пути проекта, то измени на латынь. нет там как раз видны пути все на ангельском...C:\PROGRAM FILES (X86)\BORLAND\CBUILDER6\PROJECTS\ Славян Цитата ShowMessageW E2268 Call to undefined function 'ShowMessageW' |
|
Сообщ.
#23
,
|
|
|
|
Цитата test4me @ Тьфу, ты! E2268 Call to undefined function 'ShowMessageW' Это я думал вы вызываете оную, а это ж диалог вызывает!Давайте поэтапно! : 1. Напишите свой WinAPI-вызов ::ShowMessage, скажем с WM_SETTEXT. 2. Посмотрите какой текст будет на заголовке окна. 3. Так мы точно узнаем с ANSI или уникодом работает=собирается ваша программа/проект. |
|
Сообщ.
#24
,
|
|
|
|
Славян
Цитата 1. Напишите свой WinAPI-вызов ::ShowMessage, скажем с WM_SETTEXT. не совсем понял.. ShowMessage ведь просто выводит сообщение в окне так? Добавлено сам код проще простого..не использует юникод.. ![]() ![]() //--------------------------------------------------------------------------- #include <vcl.h> #include <windows.h> #pragma hdrstop //--------------------------------------------------------------------------- // Important note about DLL memory management when your DLL uses the // static version of the RunTime Library: // // If your DLL exports any functions that pass String objects (or structs/ // classes containing nested Strings) as parameter or function results, // you will need to add the library MEMMGR.LIB to both the DLL project and // any other projects that use the DLL. You will also need to use MEMMGR.LIB // if any other projects which use the DLL will be performing new or delete // operations on any non-TObject-derived classes which are exported from the // DLL. Adding MEMMGR.LIB to your project will change the DLL and its calling // EXE's to use the BORLNDMM.DLL as their memory manager. In these cases, // the file BORLNDMM.DLL should be deployed along with your DLL. // // To avoid using BORLNDMM.DLL, pass string information using "char *" or // ShortString parameters. // // If your DLL uses the dynamic version of the RTL, you do not need to // explicitly add MEMMGR.LIB as this will be done implicitly for you //--------------------------------------------------------------------------- #pragma argsused int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved) { //ShowMessage(""); ShowMessageW(""); return 1; } //--------------------------------------------------------------------------- extern "C" void __export primer() { Application->MessageBoxA("Test","From DLL",IDOK); } Добавлено The syntax of the ShowMessage() function is void __fastcall ShowMessage(const AnsiString Message); A message box created with the ShowMessage() function uses the name of the project as its caption. The message to display is a string that can be provided by the developer. |
|
Сообщ.
#25
,
|
|
|
|
Цитата test4me @ Как бы да. Подразумевалось, что вы напишете:не совсем понял.. ShowMessage ведь просто выводит сообщение в окне так? ![]() ![]() ::ShowMessage( Application->Handle, WM_SETTEXT, 0, (long)L"тра-ля-ля"); |
|
Сообщ.
#26
,
|
|
|
|
Библоотеку нужную подключить к проекту надо, а не трахаться тут с какой-то "не работой уникода".
Либо вообще перейти на системную MessageBox Добавлено И уж тем более не писать глупость вроде такой: Цитата Славян @ Как бы да. Подразумевалось, что вы напишете: ::ShowMessage( Application->Handle, WM_SETTEXT, 0, (long)L"тра-ля-ля"); и посмотрите на текст кнопки внизу. Если там только буква 'т', то уникод не работает (система(bcb) перевела ShowMessage аки ShowMessageA), иначе - работает. |
|
Сообщ.
#27
,
|
|
|
|
trainer
Цитата Библоотеку нужную подключить к проекту надо согласен на 100%..может в этом случае точно проблема с библиотекой...как узнать какая библиотека не подключена при такой ошибке ![]() ![]() [Linker Error] Unresolved external '__fastcall Dialogs::ShowMessage(const System::AnsiString)' referenced from C:\PROGRAM FILES (X86)\BORLAND\CBUILDER6\PROJECTS\PRIMER.OBJ [Linker Error] Unresolved external 'Forms::Application' referenced from C:\PROGRAM FILES (X86)\BORLAND\CBUILDER6\PROJECTS\PRIMER.OBJ [Linker Error] Unresolved external '__fastcall Forms::TApplication::MessageBox(const char *, const char *, int)' referenced from C:\PROGRAM FILES (X86)\BORLAND\CBUILDER6\LIB\RELEASE\VCLE.LIB|_t_Forms , тем более что при компиляции апликации все нормально и соединяется и компилируется...что же такое а??? Добавлено Славян ведь даже не в юникодах дело...застрял на самой простой вещи...это был просто тест чтобы использовать потом эту dll в чужой программе...неужели так сложно на билдере раньше никогда еще не делал в основном на c#... Добавлено ураа решение найдено...как и предпологалось...соединил библиотеки.. ![]() ![]() #pragma link "d:\\borland\\lib\\vcl.lib" #pragma link "d:\\borland\\lib\\rtl.lib" примите мою благодарность спасибо всем кто ответил и хоть както принимал участие!!! с уважением test4me |
|
Сообщ.
#28
,
|
|
|
|
Цитата test4me @ сам код проще простого. Ты поди при создании проекта не указал "Use VCL", а используешь его. |
|
Сообщ.
#29
,
|
|
|
|
shm
естественно включил... Добавлено Цитата Ты поди при создании проекта не указал "Use VCL", а используешь его. |