Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / FastReport & dll / 1 сообщений из 1, страница 1 из 1
30.01.2008, 07:37
    #35096222
Tantos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FastReport & dll
Возникла проблема с использованием FR 4 Prof в dll. Приложение и dll собираются с опциями "Build with run-time packages" и "Use dynamic RTL". Загрузка первой dll с FR проходит нормально. При вызове LoadLibrary последующих вылетает ошибка "A class named TfrxDMPPage already exists". Если в dll отсутствует FR? то загрузка проходит нормально. Проект собирается на С++ Builder 5 Update 1+ADO Update, Windows XP SP2.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
void __fastcall TfrmMain::MenuBuild()
{
 int i;
 TMenuItem  *miReports(NULL);
 TComponent *Component(NULL);
 TLocateOptions loOptions;
 HINSTANCE hInst;

 slDll = new TStringList;
 loOptions<<loCaseInsensitive;

 if( slDll )
  {
   SearchPlugins(slDll, asStartDir + "plugins\\" );
   if( slDll->Count >  0  )
    {
     for( i =  0 ; i < slDll->Count; i++)
      {
         if( fdsGrants->Locate("DLL", ExtractFileName( slDll->Strings ), loOptions) )
          {
           hInst = LoadLibrary( slDll->Strings[i].c_str() );

           vDeleteForm.push_back( (LPDELETEINNERFORM)GetProcAddress( hInst, "_DeleteInnerForm") );
           SetPluginMenu   = (LPSETPLUGINMENU)GetProcAddress( hInst, "_SetPluginMenu");

           Component = frmMain->FindComponent( fdsGrants->FBN("MOWNER")->AsString );
           miReports = dynamic_cast<TMenuItem*>(Component);

           if( miReports && SetPluginMenu )
            SetPluginMenu( Application, miReports, dmMain->fdbMain,  1  );
          } //if( fdsGrants->Locate("DLL", ExtractFileName( slDll->Strings[i] ), loOptions) )
      }
    } //if( slDll->Count >  0  )
   delete slDll;
  }
}
Ошибка вылетает на этой строчке:
Код: plaintext
1.
hInst = LoadLibrary( slDll->Strings[i].c_str() );
Судя по оф.форуму, ошибка известна и должна исправляться использование run-time пакетов, либо НЕ использованием в .exe FR. Оба условия выполнены.

[i]Чем больше узнаю людей, тем больше люблю компьютеры.
...
Рейтинг: 0 / 0
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / FastReport & dll / 1 сообщений из 1, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]