На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
[!] Как относитесь к модерированию на этом форуме? Выскажите свое мнение здесь
  
> rtl60.bpl не найден
    Я написал программу на C++ Builder 6.0. При запуске на компьютере, где Билдер не установлен выдается ошибка:

    "Приложению не удалось запуститься, поскольку rtl60.bpl не был найден. Повторная установка приложения может исправить эту проблему".

    Проблема в том, что у меня, естественно, в опциях проекта сняты галочки с "Build with runtime packages" и "Use dynamic RTL".

    Что мне ещё надо поменять, чтобы программа смогла запуститься?

    Заранее всем спасибо.
      Вкладка Compiler = Нажать Release
      Вкладка Packages = снять галку Build witch.. (В самом низу)
        Цитата Kamenev_D @
        Вкладка Compiler = Нажать Release
        Вкладка Packages = снять галку Build witch.. (В самом низу)

        Все эти настройки у меня уже были. Не запустилось.
          Меню Build имя проекта
          Сообщение отредактировано: trainer -
            Цитата trainer @
            Меню Build имя проекта

            Не понял. В смысле собрать проект не при помощи "Run", а нажатием Build "Project1"? Я так и делал
              Заходишь в вкладку "Linker" снимаешь галочку "use dynamic RTL".

              Добавлено
              Если уже сделал, то попробуй еще раз. Было у меня такое, что Билдер опции не запоминал... Потом Project->Build.
                  shm
                  Доброго времени суток..подскажите пожалуста где в билдере находятся все нужные библиотеки...
                    Цитата test4me @
                    Доброго времени суток..подскажите пожалуста где в билдере находятся все нужные библиотеки...

                    К сожалению мне неизвестно какие библиотеки вам нужны. ДА и вообще не совсем ясно, что подразумевается под словом "библиотека" в контексте данной темы. Бинарники компонентов Билдера (*.bpl) лежал в <путь к каталогу Билдера>\bin.
                      доброго времени суток! попробую описать ситуацию...сделал проект где должна получится 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
                        Можно попробовать переустановить Билдер.

                        Добавлено
                        Другие проект с такими же проблемами компилируются?
                          да тоже самое...2 раза переустановил...может скачать новый дистрибутив? как думаете в чем может быть проблема?
                            Цитата shm @
                            Другие проект с такими же проблемами компилируются?
                              нет тоже нет...тоесть я аналогичное делал...под разными именами аналогичный код после переустановки билдера

                              Добавлено
                              если есть линк нормального диструбутива...этот устанавливал со старого диска
                                скачал еще диструбутив..переустановил...но тоже самое..но может проблема в операционной системе? у меня 8-ка х64
                                  Возможно опять эта проблема ANSI-Уникод. Попробуйте въявную написать ShowMessageW или ...A и др. такие функции и испытать. Дистрибутив, скорее всего, нормальный. Не в нём дело.
                                    Славян
                                    закоментировал ShowMessage..но остальные 2 ошибки? какаято проблема в объекте при линковке...что может быть?
                                      Цитата test4me @
                                      но тоже самое..но может проблема в операционной системе?

                                      Возможно, если че на хр-32 и 7-32 точно работает, правда на семерке не без глюков.
                                        доброго времени суток! создал другой проект..на форму кинул кнопку и при нажатии на нее 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

                                        Добавлено
                                        Цитата
                                        Возможно, если че на хр-32 и 7-32 точно работает, правда на семерке не без глюков.
                                        такчто это исключается...чтото происходит при линковке dll..
                                          Если есть кирилица в пути проекта, то измени на латынь.
                                          пример
                                          C:\бла\бла\myproekt
                                          измени на
                                          C:\bla\bla\myproekt

                                          Бывает путь до проекта в кириллице не обрабатывает.
                                            Цитата test4me @
                                            закоментировал ShowMessage..но остальные 2 ошибки? какаято проблема в объекте при линковке...что может быть?
                                            Так, так! Поподробнее! Т.е. одна ошибка пропала? Тогда - Ура! И пробуем написать ShowMessageW и смотрим рождает она ошибку или нет. Кстати, MessageBoxW такая же. Так что и с ней испытываем оба варианта. А дальше будем смотреть!
                                              Aibolit
                                              Цитата
                                              Если есть кирилица в пути проекта, то измени на латынь.

                                              нет там как раз видны пути все на ангельском...C:\PROGRAM FILES (X86)\BORLAND\CBUILDER6\PROJECTS\
                                              Славян
                                              Цитата
                                              ShowMessageW

                                              E2268 Call to undefined function 'ShowMessageW'
                                                Цитата test4me @
                                                E2268 Call to undefined function 'ShowMessageW'
                                                Тьфу, ты! ;) Это я думал вы вызываете оную, а это ж диалог вызывает!
                                                Давайте поэтапно! :
                                                1. Напишите свой WinAPI-вызов ::ShowMessage, скажем с WM_SETTEXT.
                                                2. Посмотрите какой текст будет на заголовке окна.
                                                3. Так мы точно узнаем с ANSI или уникодом работает=собирается ваша программа/проект.
                                                  Славян

                                                  Цитата
                                                  1. Напишите свой WinAPI-вызов ::ShowMessage, скажем с WM_SETTEXT.

                                                  не совсем понял.. ShowMessage ведь просто выводит сообщение в окне так?

                                                  Добавлено
                                                  сам код проще простого..не использует юникод..
                                                  ExpandedWrap disabled
                                                    //---------------------------------------------------------------------------
                                                     
                                                    #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.
                                                    Цитата test4me @
                                                    не совсем понял.. ShowMessage ведь просто выводит сообщение в окне так?
                                                    Как бы да. Подразумевалось, что вы напишете:
                                                    ExpandedWrap disabled
                                                      ::ShowMessage( Application->Handle, WM_SETTEXT, 0, (long)L"тра-ля-ля");
                                                    и посмотрите на текст кнопки внизу. Если там только буква 'т', то уникод не работает (система(bcb) перевела ShowMessage аки ShowMessageA), иначе - работает.
                                                      Библоотеку нужную подключить к проекту надо, а не трахаться тут с какой-то "не работой уникода".
                                                      Либо вообще перейти на системную MessageBox

                                                      Добавлено
                                                      И уж тем более не писать глупость вроде такой:
                                                      Цитата Славян @
                                                      Как бы да. Подразумевалось, что вы напишете:

                                                      ::ShowMessage( Application->Handle, WM_SETTEXT, 0, (long)L"тра-ля-ля");

                                                      и посмотрите на текст кнопки внизу. Если там только буква 'т', то уникод не работает (система(bcb) перевела ShowMessage аки ShowMessageA), иначе - работает.
                                                        trainer
                                                        Цитата
                                                        Библоотеку нужную подключить к проекту надо

                                                        согласен на 100%..может в этом случае точно проблема с библиотекой...как узнать какая библиотека не подключена при такой ошибке
                                                        ExpandedWrap disabled
                                                          [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#...

                                                        Добавлено
                                                        ураа решение найдено...как и предпологалось...соединил библиотеки..
                                                        ExpandedWrap disabled
                                                          #pragma link "d:\\borland\\lib\\vcl.lib"
                                                          #pragma link "d:\\borland\\lib\\rtl.lib"

                                                        примите мою благодарность
                                                        спасибо всем кто ответил и хоть както принимал участие!!!
                                                        с уважением test4me
                                                          Цитата test4me @
                                                          сам код проще простого.

                                                          Ты поди при создании проекта не указал "Use VCL", а используешь его.
                                                            shm
                                                            естественно включил...

                                                            Добавлено
                                                            Цитата
                                                            Ты поди при создании проекта не указал "Use VCL", а используешь его.
                                                            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                                            0 пользователей:


                                                            Рейтинг@Mail.ru
                                                            [ Script execution time: 0.1202 ]   [ 16 queries used ]   [ Generated: 13.05.26, 19:58 GMT ]