Форум: "Основная";
Текущий архив: 2002.11.14;
Скачать: [xml.tar.bz2];
ВнизОшибка при вызове DLL Найти похожие ветки
← →
stone (2002-11-05 15:18) [0]При вызове DLL возникает ошибка:
---------------------------
Debugger Exception Notification
---------------------------
Project fcpclnt.exe raised exception class EOleSysError with message "CoInitialize has not been called". Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
может кто сталкивался с подобным?
← →
linage (2002-11-05 16:03) [1]ты DLL динамически вызываешь?
← →
Alex4444444444 (2002-11-05 16:05) [2]Mozhet, nado CoInitialize vyzvat"?
← →
stone (2002-11-05 16:07) [3]linage
Да динамически
← →
stone (2002-11-05 16:11) [4]мало того, при выполнении
finally
FreeLibrary(LibHandle);
end;
выдает
---------------------------
Information
---------------------------
Project D:\Project\MIDAS\fcpclnt\bin\fcpclnt.exe raised too many consecutive exceptions: "access violation at 0x00000000: read of address 0x00000000". Process Stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
← →
linage (2002-11-05 16:16) [5]Ну этот ощначает, что она не создала дескриптор на твою библиотеку!
А можешь привести код, как ты ее подгружаешь?
← →
stone (2002-11-05 16:18) [6]type
TShowOptions = function:Boolean; stdcall;
...
implementation
procedure TfrmMainForm.mmiOptionsClick(Sender: TObject);
var
LibHandle : THandle;
ShowOptions : TShowOptions;
begin
LibHandle := LoadLibrary("options.dll");
try
if LibHandle = 0 then
raise Exception.Create("Unable to load DLL");
@ShowOptions := GetProcAddress(LibHandle, "ShowOptions");
if not (@ShowOptions = nil) then
if ShowOptions then
ShowMessage("Text of message");
finally
FreeLibrary(LibHandle);
end;
end;
← →
linage (2002-11-05 16:24) [7]А на каком шаге вылетает exception?
← →
stone (2002-11-05 16:34) [8]if not (@ShowOptions = nil) then
if ShowOptions then <- "CoInitialize has not been called"
ShowMessage("Text of message");
finally
FreeLibrary(LibHandle); <- too many consecutive exceptions
end;
← →
aus (2002-11-05 16:53) [9]
uses ActiveX;
....................
initialization
CoInitialize;
finalization
CoUnInitialize;
end.
← →
linage (2002-11-05 16:58) [10]Попробуй вместо функции ShowOptions, использовать процедуру ShowOptions(var b:boolean)
← →
stone (2002-11-05 16:59) [11]aus а применительно к моей ситуации? я пробовал CoInitialize(@ShowOptions), но результат тот же.
← →
stone (2002-11-05 17:00) [12]linage пробовал и через процедуру, как с параметрами, так и без - результат тот же
← →
linage (2002-11-05 17:10) [13]слушай, а может exception вываливается во время работы твоей функции?
← →
stone (2002-11-06 09:21) [14]linage эта функция просто модально отображает форму
Form1 := TForm1.create(Application);
try
Result = Form1.ShowModal = mrOk;
finally
Form1.Free;
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.11.14;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.008 c