powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / FastReport & dll
1 сообщений из 1, страница 1 из 1
FastReport & dll
    #35096222
Tantos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Возникла проблема с использованием 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
1 сообщений из 1, страница 1 из 1
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / FastReport & dll
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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