Вниз
Скачать: CL | DM;

Ошибка при вызове 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 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.012 c
3-45686
Dbrf
2002-10-28 12:55
2002.11.14
Изменить формат даты


8-46010
евгеша
2002-07-23 16:34
2002.11.14
Помогите пожалуйста.


8-46005
Slaem
2002-07-26 17:27
2002.11.14
media


1-45861
bearoman
2002-11-05 10:55
2002.11.14
Нужен хороший компонент для построения графиков.


1-45938
Андрусь
2002-10-31 16:05
2002.11.14
Чтобы форма не моргала...




   Наверх