Einzelnen Beitrag anzeigen

AliDi

Registriert seit: 3. Jul 2005
Ort: Köln
23 Beiträge
 
Delphi 2007 Professional
 
#1

rufId.dll aus Windows Dienst ansprechen (LoadLibrary)

  Alt 2. Nov 2010, 20:10
Delphi-Version: 6
Hallo zusammen,

Ich nutze den Beispielcode aus folgendem Thread um die rufId.dll der Klicktel/Rufident CD anzusprehen. Das ganze ermöglicht eine Rückwärtsuche in der Klicktel Datenbank.

http://www.delphipraxis.net/61170-ru...nd-nutzen.html

Das ganze funktioniert in einer normalen Anwendung einwandfrei, wenn ich allerdings den Code in einen Dienst stecke startet dieser erst gar nicht.

Fehlermeldung:
"Runtime error 217 at 000112A7" und anschließend
"Fehler 1053: Der Dienst antwortete nicht rechtzeitig auf die Start- oder Steuerungsanforderung."

Es reicht schon folgendes in den initialization Abschnitt der Unit zu stecken:

Delphi-Quellcode:
initialization


DllHdl := 0;
FuncPtr := Nil;


DLLPath:= DllPath + 'rufid.dll';

DllHdl := LoadLibrary(PChar (DLLPath));

if DllHdl > 0 then
  begin
    FuncPtr := GetProcAddress( DllHdl, 'SucheTelefonnummer' );
    if FuncPtr <> nil then @PSucheTelefonnummer := FuncPtr;

    FuncPtr := GetProcAddress( DllHdl, 'UseVersion' );
    if FuncPtr <> nil then @PUseVersion := FuncPtr;

  end;
DllHdl ist nach Aufruf von LoadLibrary0, GetLastError ist auch 0 (getestet mit Messageboxen). Gehe ich den Code in Einzelschritten durch hat DllHdl einen Wert > 0 und GetLastError liefert wieder 0. Ich verstehe nicht wieso LoadLibrary mir kein Handle für die DLL gibt obwohl GetLastError behauptet das alles ok war.

Was mache ich falsch?

Vielen Dank schon mal
AliDi
  Mit Zitat antworten Zitat