Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.06.29;
Скачать: [xml.tar.bz2];

Вниз

Access Violation и DLL   Найти похожие ветки 

 
Mary   (2005-06-01 09:44) [0]

Доброе утро All. Проблема в следующем.
Сделана dll для работы с RaveReports. Единственная функция экспортная для создания DataModule-я, остальные вызываются через интерфейс.
Из основного приложения в определенный момент вызывается функция печати, которая загружает dll, пользует её функции и потом после печати отчета выгружает её.
Первый раз все срабатывает на ура, дальше со второго или любого другого раза валятся ошибки типа Access Vioation, системы появления ошибок выявить не удалось.
Вот кусок кода из функции основного приложения:

try
dllHandle:=GetModuleHandle(pchar(ExtractFilePath(Application.ExeName)+"\DLL\Print.dll"));
if (dllHandle=0) then
dllHandle:=LoadLibrary(pchar(ExtractFilePath(Application.ExeName)+"\DLL\Print.dll"));
try
if dllHandle=0 then Exit;
@MyDllCreate:=GetProcAddress(dllHandle,"CreateDMPrint");
if (@MyDllCreate=nil) then Exit;
dmP:=MyDllCreate(Application.Handle);
if (dmP.GetInterface(IPrintInterface,IPrint)) then begin
// открываем файл проекта
tmp_str := ReturnPrintProjectName(doc_table,doc_type);
if not IPrint.OpenProject(tmp_str) then begin
Showmessage(ReturnErrMsg(11,tmp_str));
Exit;
end;
{ формируем отчет, передаем данные и все такое }
...
Sleep(10);
// вызов сформированного отчета
IPrint.CreateReport(print_type);
end;

finally
dmD.CloseConnection;
IPrint:=nil;
dmP.Free;
dmP:=nil;
FreeLibrary(dllHandle);
Sleep(10);
end;

except
Showmessage("Ошибка");
end;

Мучаюсь довольно давно. Сведущие, откликнитесь, пожалуйста !


 
evvcom ©   (2005-06-01 10:05) [1]

Что такое dmP - TDataModule? Что делает CreateDMPrint с Application.Handle? И скорее всего самый важный вопрос, стоит ли галка "Build with run-time packages"?


 
Alx2 ©   (2005-06-01 11:08) [2]

Mary   (01.06.05 9:44)
Может, потому-что не используется модуль ShareMem ?


 
Digitman ©   (2005-06-01 11:25) [3]


> Mary   (01.06.05 09:44)  


пара вопросов к тебе, напрямую не связанных с проблемой ..

1. Каков тайный смысл заключения вызовов GetModuleHandle и LoadLibrary в блок try..exept, если эти вызовы (равно как и лбые иные Win32API-вызовы) не возбуждают никаких исключений ? тем более - дельфийских ?

2. Каков тайный экспортировать ф-цию, если есть интерфейс ?



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2005.06.29;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.044 c
14-1117699731
msguns
2005-06-02 12:08
2005.06.29
пос. Инской


1-1117442139
Avals-Z
2005-05-30 12:35
2005.06.29
Работа с динамически созданными объектами


14-1117132827
Копир
2005-05-26 22:40
2005.06.29
Нарушение авторских прав. Гомер. Одиссея.


10-1094755922
Комбинатор
2004-09-09 22:52
2005.06.29
Что такое corba и с чем её едят?


6-1112085248
Ves
2005-03-29 12:34
2005.06.29
Автоввод логина и пароля на проксю





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский