Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.08.14;
Скачать: CL | DM;

Вниз

Вызов функции из dll   Найти похожие ветки 

 
Vsr   (2005-07-27 14:28) [0]

Доброго времени суток! В приложении есть две функции: одна сохраняет настройки в реестр, другая их считывает. Решил перенести их в библиотеку.

library cd;
....
function ReadOptionFromRegistry(Option : TRadioButton; SubKey : PChar; Node: PChar) : boolean;
var    R : TRegistry;
      StateInt : byte;
      St : boolean;
begin
   R:=TRegistry.Create;
   try
       result:=R.OpenKey(SubKey,false);
if not result then exit;
       if R.ValueExists(Node) then begin
       StateInt:=R.ReadInteger(Node);
       Move(StateInt,St,1);
       Option.Checked:=St;
       end;
   finally
       R.Free;
   end;
end;

В момент вызова библиотеки на строке LibHandle := LoadLibrary(PChar("cd.dll")); ловлю exception "Cannot create application object in a shared object or library"

procedure TForm2.FormActivate(Sender: TObject);
var ReadOptionFromRegistry: TReadOptionFromRegistry;
begin
try
LibHandle := LoadLibrary(PChar("cd.dll"));
   if LibHandle = 0 then
     raise Exception.Create("Unable to Load   DLL  ...")
   else
   begin
     try @ReadOptionFromRegistry := GetProcAddress(LibHandle, "ReadOptionFromRegistry");
       if @ReadOptionFromRegistry <> nil then
       if ReadOptionFromRegistry(RadioButton1, PChar("Software\CDLibrary\Options"), PChar("CommonName")) then
         begin
           RadioButton1.Checked:=RadioButton1.Checked;
         end;

     except
       on E: Exception do
         ShowMessage("Exception error: " + E.Message);
     end;
   end;
finally
   FreeLibrary(LibHandle);
   end;
end;

Понимаю, что в длл взяться Application неоткуда. А вот как передавать указатель на него, что-то не могу понять. Помогите разобраться.


 
han_malign ©   (2005-07-27 14:53) [1]

uses Forms из DLL убери


 
Vsr   (2005-07-27 15:01) [2]

:-(
не помогло


 
evvcom ©   (2005-07-27 15:04) [3]


> Решил перенести их в библиотеку.

И нафига? Build with runtime packages - галка естественно не стоит?



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

Текущий архив: 2005.08.14;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.054 c
14-1122288623
Vudu
2005-07-25 14:50
2005.08.14
Клавиатура + Пиво = ?


9-1113736502
Yegorchic
2005-04-17 15:15
2005.08.14
Поворот камеры


1-1122256529
Скроллер
2005-07-25 05:55
2005.08.14
Как сделать чтобы координаты не зависили от линеек прокрутки ?


1-1121859509
pasha L
2005-07-20 15:38
2005.08.14
искусственно создать RXMemoryData


3-1120523457
LF
2005-07-05 04:30
2005.08.14
Игнорируется EOleException