Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Error loading "midas.dll" 
V
    Опции темы
hater
Дата 3.11.2010, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 21.3.2010

Репутация: нет
Всего: нет



Цитата(XYLIGAN @ 17.1.2010,  18:32)
Подключи:
Код

#include <dbxdsnmys.h> 

А потом на создание основной формы повесь:
Код

void __fastcall TMainForm::FormCreate(TObject *Sender)
{
  RegisterMidasLib(::DllGetDataSnapClassObject);
}

На С++ Buider 6 у меня работает

Скажите, как такое же сделать для builder c++ 2010? Очень надо, помогите, пожалуйста.
PM MAIL   Вверх
hater
Дата 3.11.2010, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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...
PM MAIL   Вверх
hater
Дата 3.11.2010, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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 не хочет в экзешник :(
PM MAIL   Вверх
hater
Дата 3.11.2010, 21:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 21.3.2010

Репутация: нет
Всего: нет



Никто не сталкивался с этим?..
PM MAIL   Вверх
oldcode
Дата 4.11.2010, 00:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 116
Регистрация: 8.10.2010

Репутация: 0
Всего: 0



Цитата(hater @ 3.11.2010,  21:17)
Никто не сталкивался с этим?..

Имхо, Вы говорите о разных вещах.
#include <midas.hpp> подключает к проекту соотвествующий заголовочный файл, но не добавляет dll, типа как jpg'a в Image (хотя и тут не все так однозначно smile ).
Чтобы реализовать задуманное Вами, следовало бы эту midas.dll запихнуть в ресурс, который добавить в ехе, во время выполнения midas.dll извлечь, зарегистрировать , использовать, потом удалить... ИМХО, проще просто положить в папку рядом с ехе и зарегистрировать (regsvr32 путь\midas.dll), говорят, временами проходит и без регистрации.
Проблема при весе midas.dll (Вин7) 445 кб. явно надумана.
Цитата(hater @ 3.11.2010,  17:33)
нашел следующее
===========================================
How to statically link dbExpress drivers
------------------------------
============================================
Подскажите, пожалуйста, как подобное осуществить в builder c++ 2010...

вот как там говорят, так для 2010 и делайте, не получится, спрашивайте с обоснованием вопроса smile

Это сообщение отредактировал(а) oldcode - 4.11.2010, 05:59
PM MAIL   Вверх
hater
Дата 4.11.2010, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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
PM MAIL   Вверх
hater
Дата 4.11.2010, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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
PM MAIL   Вверх
oldcode
Дата 4.11.2010, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 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, бросьте в папку с проетом и добавьте в проект
PM MAIL   Вверх
hater
Дата 4.11.2010, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 21.3.2010

Репутация: нет
Всего: нет



спасибо Вам большое, за то что не оставляете меня в трудной ситуации.
сейчас всё попробую, что Вы указали.

скажите, я двигаюсь в правильном направлении?

Это сообщение отредактировал(а) hater - 4.11.2010, 16:08
PM MAIL   Вверх
oldcode
Дата 4.11.2010, 17:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 116
Регистрация: 8.10.2010

Репутация: 0
Всего: 0



Цитата(hater @ 4.11.2010,  15:40)
в правильном направлении?

если что-то делаете, значит, таки да smile
PM MAIL   Вверх
hater
Дата 4.11.2010, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 21.3.2010

Репутация: нет
Всего: нет



а Вы знаете решение этого вопроса? =)
PM MAIL   Вверх
oldcode
Дата 5.11.2010, 02:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 116
Регистрация: 8.10.2010

Репутация: 0
Всего: 0



иногда стоит забыть все, о чем говорилось выше, и посмотреть на вопрос по-новому smile
а возвращаясь к истокам... может, дело не в физическом размещении библиотеки ?
PM MAIL   Вверх
hater
Дата 5.11.2010, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 21.3.2010

Репутация: нет
Всего: нет



проблема в том, что эта библиотека любит себя в реестре прописывать при первом использовании на компьютере...
а если у пользователя антивирусник будет блокировать попытки записи в реестр...
поэтому надо эту библиотеку прилинковать статически и получить автономный исполняемый файл.
как это сделать для builder c++ 2010 для меня до сих пор остается загадкой...
PM MAIL   Вверх
Лена
Дата 5.11.2010, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 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, то гуру меня поправят, мне это не удалось.

PM MAIL   Вверх
hater
Дата 5.11.2010, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 21.3.2010

Репутация: нет
Всего: нет



мм... простите меня за неосведомленность, builder xe вышел после builder 2010 ?..

Добавлено через 9 минут и 28 секунд
Цитата(Лена @ 5.11.2010,  16:33)
Я тоже исследовала этот вопрос...
midas.dll до версии C++ Builder XE, насколько мне известно, включить чтобы все работало нормально, в файл exe не удастся. Это можно сделать только в Дельфи. В С++ Builder XE эта проблема решена. До этой версии - C++ Builder XE, чтобы все работало достаточно просто поместить midas.dll в папку system32. Если все же существует возможность включить midas.dll в файл exe до версии C++ Builder XE, то гуру меня поправят, мне это не удалось.

эх...
p.s. очень бы хотелось услышать мнение гуру на этот счет =)

Это сообщение отредактировал(а) hater - 5.11.2010, 16:48
PM MAIL   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0880 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.