![]() |
|
![]() ![]() ![]() |
|
hater |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 21.3.2010 Репутация: нет Всего: нет |
Скажите, как такое же сделать для builder c++ 2010? Очень надо, помогите, пожалуйста. |
||||||
|
|||||||
hater |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 21.3.2010 Репутация: нет Всего: нет |
нашел следующее
=========================================== How to statically link dbExpress drivers ------------------------------ Static linking of dbExpress drivers (dbxdsnint.lib for InterBase, dbxdsnora.lib for Oracle, dbxdsndb2.lib for DB2, or dbxdsnmys.lib for MySQL 3.23.x) in C++Builder is a two- step process: Link the driver, then register both the driver and the DataSnap library. You can enter this code in your TForm constructor. The .lib files are located in your \cbuilder6\lib directory. Important: Do not link more than one dbExpress driver into a project. Linking more than one driver will cause linking errors and may require a corrective shutdown of C++Builder. The following example uses the InterBase driver. Step 1. Include the dbExpress/DataSnap header file: #include <dbxdsnint.h> Step 2. Register the static library: RegisterDbXpressLib(::getSQLDriverINTERBASE); RegisterMidasLib(::DllGetClassObject); Note: DataSnap (a part of what was formerly known as MIDAS) is linked in to each dbExpress driver for C++Builder 6. Thus, if you need to statically link DataSnap only for access to midaslib, simply link in any of the drivers listed above. ============================================ Подскажите, пожалуйста, как подобное осуществить в builder c++ 2010... |
|||
|
||||
hater |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 21.3.2010 Репутация: нет Всего: нет |
еще нашел вот что:
Database applications that use client datasets such as TClientDataSet or dataset providers require you to include midas.dcu (for Delphi) or midas.hpp (for C++) (for static linking when providing a standalone executable) то есть, как я понял, нужно сделать нечто подобное: #include <midas.hpp> внес изменения, проект перекомпилировал, все равно midas.dll не хочет в экзешник :( |
|||
|
||||
hater |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 21.3.2010 Репутация: нет Всего: нет |
Никто не сталкивался с этим?..
|
|||
|
||||
oldcode |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 116 Регистрация: 8.10.2010 Репутация: 0 Всего: 0 |
Имхо, Вы говорите о разных вещах. #include <midas.hpp> подключает к проекту соотвествующий заголовочный файл, но не добавляет dll, типа как jpg'a в Image (хотя и тут не все так однозначно ![]() Чтобы реализовать задуманное Вами, следовало бы эту midas.dll запихнуть в ресурс, который добавить в ехе, во время выполнения midas.dll извлечь, зарегистрировать , использовать, потом удалить... ИМХО, проще просто положить в папку рядом с ехе и зарегистрировать (regsvr32 путь\midas.dll), говорят, временами проходит и без регистрации. Проблема при весе midas.dll (Вин7) 445 кб. явно надумана.
вот как там говорят, так для 2010 и делайте, не получится, спрашивайте с обоснованием вопроса ![]() Это сообщение отредактировал(а) oldcode - 4.11.2010, 05:59 |
||||
|
|||||
hater |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 21.3.2010 Репутация: нет Всего: нет |
спасибо, что откликнулись.
вот тут рассматривалась подобная задача: http://www.rsdn.ru/forum/delphi/3779048.flat.aspx а именно: "Нужна Ваша помощь — создал программу на C++Builder6, использующую механику dbexpress для работы с БД, при этом имеется насущная необходимость не таскать никаких dll поддержки dbexpress вместе с исполняемым модулем ... как это проделать под Delphi в сети рекомендация присутствует очень плотно — там необходимо добавить в оператор USES ссылку на три DCU файла и они перечисляются — Crtl, MidasLib и dbExpXXX (этот зависит от конкретной СУБД) .. Как это проделать для C++ Builder ?" только в моем случае это будет C++Builder 2010. частично проблему решил: убрал галку с build with runtime packages и поставил dynamic RTL в false, но появилась проблема в лице midas.dll. не подскажите, как ее статически прилинковать к экзешнику(не уверен что правильно выразился), то есть чтобы не носить ее вместе с исполняемым файлом и не регистрировать в реестре? может быть кто-то сталкивался... просто по указанной ссылке рассматривается случай с builder6 с++, а на тот момент, как я понимаю, статической библиотеки midas еще не поставлялось и поэтому склонен полагать, что данная проблема решается для builderc++ 2010 несколько иначе. p.s. извиняюсь за сумбурное изложение мысли. Это сообщение отредактировал(а) hater - 4.11.2010, 13:27 |
|||
|
||||
hater |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 21.3.2010 Репутация: нет Всего: нет |
если пойти по пути, указанному в той ссылке, то следует выполнить следующее:
Step 1. Include the dbExpress/DataSnap header file: #include <dbxdsnint.h> Step 2. Register the static library: RegisterDbXpressLib(::getSQLDriverINTERBASE); RegisterMidasLib(::DllGetClassObject); итого: The correct code to include in the main form constructor is therefore; #include <sqlexpr.hpp>//for RegisterDbXpressLib() #include <dbxdsnint.h>//or <dbxdsnmys.h>for MySQL RegisterDbXpressLib(::getSQLDriverINTERBASE); // or RegisterDbXpressLib(::getSQLDriverMYSQL); for MySQL RegisterMidasLib(::DllGetDataSnapClassObject); в случае с builder c++ 2010: - Unable to open include file 'dbxdsnint.h' - нет функции RegisterDbXpressLib - так же нет DllGetDataSnapClassObject поскольку не получается открыть 'dbxdsnint.h' подскажите, как проделать подобное для builder c++ 2010 Это сообщение отредактировал(а) hater - 4.11.2010, 13:55 |
|||
|
||||
oldcode |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 116 Регистрация: 8.10.2010 Репутация: 0 Всего: 0 |
Unable to open include file 'dbxdsnint.h' - для начала разберитесь с путями и переменными окружения,
посмотрите здесь http://www.softholm.com/articles/midas.html и здесь http://www.google.com/search?q=%D0%B5%D0%B...lient=firefox-a Добавлено через 1 минуту и 18 секунд на крайняк, если у вас есть dbxdsnint.h, бросьте в папку с проетом и добавьте в проект |
|||
|
||||
hater |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 21.3.2010 Репутация: нет Всего: нет |
спасибо Вам большое, за то что не оставляете меня в трудной ситуации.
сейчас всё попробую, что Вы указали. скажите, я двигаюсь в правильном направлении? Это сообщение отредактировал(а) hater - 4.11.2010, 16:08 |
|||
|
||||
oldcode |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 116 Регистрация: 8.10.2010 Репутация: 0 Всего: 0 |
если что-то делаете, значит, таки да ![]() |
|||
|
||||
hater |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 21.3.2010 Репутация: нет Всего: нет |
а Вы знаете решение этого вопроса? =)
|
|||
|
||||
oldcode |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 116 Регистрация: 8.10.2010 Репутация: 0 Всего: 0 |
иногда стоит забыть все, о чем говорилось выше, и посмотреть на вопрос по-новому
![]() а возвращаясь к истокам... может, дело не в физическом размещении библиотеки ? |
|||
|
||||
hater |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 21.3.2010 Репутация: нет Всего: нет |
проблема в том, что эта библиотека любит себя в реестре прописывать при первом использовании на компьютере...
а если у пользователя антивирусник будет блокировать попытки записи в реестр... поэтому надо эту библиотеку прилинковать статически и получить автономный исполняемый файл. как это сделать для builder c++ 2010 для меня до сих пор остается загадкой... |
|||
|
||||
Лена |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 879 Регистрация: 16.8.2006 Репутация: 11 Всего: 11 |
Я тоже исследовала этот вопрос...
midas.dll до версии C++ Builder XE, насколько мне известно, включить чтобы все работало нормально, в файл exe не удастся. Это можно сделать только в Дельфи. В С++ Builder XE эта проблема решена. До этой версии - C++ Builder XE, чтобы все работало достаточно просто поместить midas.dll в папку system32. Если все же существует возможность включить midas.dll в файл exe до версии C++ Builder XE, то гуру меня поправят, мне это не удалось. |
|||
|
||||
hater |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 21.3.2010 Репутация: нет Всего: нет |
мм... простите меня за неосведомленность, builder xe вышел после builder 2010 ?..
Добавлено через 9 минут и 28 секунд
эх... p.s. очень бы хотелось услышать мнение гуру на этот счет =) Это сообщение отредактировал(а) hater - 5.11.2010, 16:48 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++ Builder" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C++ Builder | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |