AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Aufruf eines WebService aus einer DLL heraus
Thema durchsuchen
Ansicht
Themen-Optionen

Aufruf eines WebService aus einer DLL heraus

Ein Thema von UweR · begonnen am 19. Mär 2007 · letzter Beitrag vom 26. Mär 2007
Antwort Antwort
UweR

Registriert seit: 15. Mär 2004
Ort: Bad Marienberg
219 Beiträge
 
Delphi 7 Professional
 
#1

Aufruf eines WebService aus einer DLL heraus

  Alt 19. Mär 2007, 12:27
Hallo Leute,

ich habe Probleme eine DLL zu entladen mit der ich einen WebService aufgerufen habe. Die DLL wird dynamisch angebunden, die Funktion aufgerufen und wenn ich dann die DLL mit FreeLibrary entladen will hängt sich mein Proc dabei auf.

Hier erst mal die Funktion in der DLL:

Delphi-Quellcode:
   CoInitialize(nil);

   service := GetInversServiceSoap();
   service.PublishLocationByCarAliasID(CarID, nLonDegree, nLonMinute, rLonSecond, nLatDegree, nLatMinute, rLatSecond);
   CoUninitialize();
Das proc das die DLL aufruft sieht erst mal so aus:

Delphi-Quellcode:
   FDLLHandle := 0;
   SaveGPS := Nil;
   FDLLHandle := LoadLibrary('SaveGPS.DLL');
   if FDLLHandle <> 0 then begin
      @SaveGPS := GetProcAddress(FDLLHandle, 'SaveGPSCarID');
      SaveGPS(5054.4759, 758.9962, 0);
      FreeLibrary(FDLLHandle);

   end;
Irgendjemand ne Idee?
Gruß
UweR
  Mit Zitat antworten Zitat
the-networker

Registriert seit: 25. Okt 2003
Ort: Dortmund
33 Beiträge
 
Delphi 7 Professional
 
#2

Re: Aufruf eines WebService aus einer DLL heraus

  Alt 25. Mär 2007, 15:22
Hallo Uwe,
das Problem hatte ich in der Vergangenheit auch.
Habe es dann wie folgt gelöst:
Delphi-Quellcode:
library WebMediaWebClient;
{$R *.RES}
uses
  Windows,
  Sysutils,
  activex,
  availability,//meine Funktionsunit für Dich ohne Belang
  Comobj;



procedure DLLEntryPoint(dwReason:dword);
begin
  case dwReason of
    DLL_PROCESS_ATTACH:
      begin
      OleCheck(CoInitialize(nil));
      end;
    DLL_PROCESS_DETACH:
    begin
      CoUnInitialize; //OLE DeInitializieren
    end;
  end;
end;

exports
BHGetAvailability;//Export aus meiner Funktionsunit

begin
  DllProc := @DLLEntryPoint;
  DllEntryPoint(DLL_PROCESS_ATTACH);
end.
Gruß
Uwe Lange
  Mit Zitat antworten Zitat
UweR

Registriert seit: 15. Mär 2004
Ort: Bad Marienberg
219 Beiträge
 
Delphi 7 Professional
 
#3

Re: Aufruf eines WebService aus einer DLL heraus

  Alt 26. Mär 2007, 08:38
Hallo Uwe,

Danke, jetzt gehts!
Gruß
UweR
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.201 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Aufruf eines WebService aus einer DLL heraus

  Alt 26. Mär 2007, 09:06
Das Problem ist vermutlich das du mit CoUninitialize dein COM-Appartment abmeldest obwohl du noch gültige Interface-Zeiger hast. Wenn diese nun (automatisch) freigegeben werden so kracht es auf COM-Ebene.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz