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

Вниз

Вопрос по DLL   Найти похожие ветки 

 
_sulent   (2004-11-30 09:02) [0]

Приветсвую, может быть вопрос не по конференции, но решил обратиться сюда.
Возникла такая проблема, что-то не могу понять. создаю DLL из программы гружу ее, вроде загружается, но стоит мне только убить ее, все хана... выдает ошибку, что мол что-то с памятью моей не то! В общем ошибка обращения к памяти. Что может быть такое?
причем если я его не убиваю этот Handle, то при закрытии программы опять такая ошибка появляется!
делаю так:

   
LibHandle := LoadLibrary(pChar(ExtractFilePath(Application.ExeName)+"DLL\Reports\"+SR.Name));
   index := FindNext(SR);
   if LibHandle > 32 then begin
     SetLength(LibHandles, length(LibHandles)+1);
     @Tproc := getProcAddress(LibHandles[length(LibHandles)-1], "describe_report");
     Tproc(List);
     RepList.Items.Add(List.Strings[1]);
   end;
   FreeLibrary(LibHandle);


 
Digitman ©   (2004-11-30 09:09) [1]

у тебя ошибка в самой DLL


 
KSergey ©   (2004-11-30 09:13) [2]

SahreMem, похоже, как всегда отсутствует


 
_sulent   (2004-11-30 09:26) [3]

ShareMem у меня как раз присутсвует, а сама DLL нормально работает, никаких проблем нет... проверял запуская саму программу, работает нормально...


 
TUser ©   (2004-11-30 09:35) [4]

И все-таки, код dll"ки покажи.


 
Verg ©   (2004-11-30 09:44) [5]

Несколько вопросиков:


> LibHandle := LoadLibrary(pChar(ExtractFilePath(Application.ExeName)+"DLL\Reports\"+SR.Name));
>    index := FindNext(SR);
>    if LibHandle > 32 then begin // В чем смысл сравнения ?
>      SetLength(LibHandles, length(LibHandles)+1); // Массив расширен, но LibHandle  туда не вписан
>      @Tproc := getProcAddress(LibHandles[length(LibHandles)-1], // В какой библиотеке ты ищешь процедуру ?
> "describe_report");
>      Tproc(List);
>      RepList.Items.Add(List.Strings[1]);
>    end;
>    FreeLibrary(LibHandle);


 
_sulent   (2004-11-30 10:50) [6]

Там это я просто экспериментировал, а по-идее у меня все было так:

index := FindFirst(pChar(ExtractFilePath(Application.ExeName)+"DLL\Reports\*.dll",faAnyFile, SR);
while index=0 do begin
LibHandle := LoadLibrary(pChar(ExtractFilePath(Application.ExeName)+"DLL\Reports\"+SR.Name));
if LibHandle > 32 then begin
 @Tproc := getProcAddress(LibHandle, "describe_report");
 TProc(List);
end;
end;

Что-то типа того



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

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

Наверх





Память: 0.45 MB
Время: 0.036 c
8-1094651546
SNV888
2004-09-08 17:52
2004.12.12
проигрывание MOD файлов


4-1099031409
Shiza
2004-10-29 10:30
2004.12.12
Возможно ли если на одной линии находятся модем и телефон


14-1100870142
ПЛОВ
2004-11-19 16:15
2004.12.12
Где достать голосовой профиль для украинского языка?


1-1101287480
mid
2004-11-24 12:11
2004.12.12
Access violation


1-1101848922
Kolan
2004-12-01 00:08
2004.12.12
Перенос Series





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский