AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) JWAPI: Function not found: wininet.dll.InternetOpen

JWAPI: Function not found: wininet.dll.InternetOpen

Offene Frage von "swestner"
Ein Thema von swestner · begonnen am 31. Aug 2012
Antwort Antwort
swestner

Registriert seit: 31. Aug 2012
12 Beiträge
 
#1

JWAPI: Function not found: wininet.dll.InternetOpen

  Alt 31. Aug 2012, 10:14
Hallo,

ich nutze die JEDI Api Headers seit 2008 zum Zugriff auf WinInet-Funktionen. Bis vor kurzem hatte ich eine Version von April 2008, welche jahrelang anstandlos funktioniert hat. Ich habe damals direkt JwaWinInet eingebunden.

Neulich habe ich mir die aktuelle Version der Jedi-Api-Headers heruntergeladen und installiert. Gemäß Anleitung habe ich jetzt nur noch ein JwaWindows und habe meine uses entsprechend angepaßt.

Wenn ich jetzt in meinem Programm ein

hInet:=InternetOpen(PChar(sUserAgent), INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0) aufrufe, dann komme ich in JwaWinType

Delphi-Quellcode:
procedure GetProcedureAddress(var P: Pointer; const ModuleName, ProcName: AnsiString);
var
  ModuleHandle: HMODULE;
begin
  if not Assigned(P) then
  begin
    ModuleHandle := {$IFDEF JWA_INCLUDEMODE}jwaWinType_GetModuleHandle
                    {$ELSE}GetModuleHandle
                    {$ENDIF JWA_INCLUDEMODE}
                    (PAnsiChar(AnsiString(ModuleName)));
    if ModuleHandle = 0 then
    begin
      ModuleHandle := {$IFDEF JWA_INCLUDEMODE}jwaWinType_LoadLibrary
                    {$ELSE}LoadLibrary
                    {$ENDIF JWA_INCLUDEMODE}(PAnsiChar(ModuleName));
      if ModuleHandle = 0 then
        raise EJwaLoadLibraryError.CreateFmt(RsELibraryNotFound, [ModuleName]);
    end;
    P := Pointer({$IFDEF JWA_INCLUDEMODE}jwaWinType_GetProcAddress
                    {$ELSE}GetProcAddress
                    {$ENDIF JWA_INCLUDEMODE}(ModuleHandle, PAnsiChar(ProcName)));

// --> P ist NIL, d. h. die WinInet.Funktion InternetOpen kann mit GetProcAdress nicht ermittelt werden...

    if not Assigned(P) then
      raise EJwaGetProcAddressError.CreateFmt(RsEFunctionNotFound, [ModuleName, ProcName]);
  end;
end;
und kriege am Ende eine Exception.

Was läuft da schief?

Edit:
Ich habe gerade gemerkt, daß wenn ich die dynamic-version der JWAPI nehme, der Fehler kommt aber nicht bei der Static. Also
$(Komponenten)\JediWindowsApiHeaders\jwapi\Package s\bds11\bin\release\static im Suchpfad funktioniert nicht aber
$(Komponenten)\JediWindowsApiHeaders\jwapi\Package s\bds11\bin\release\dynamic.

Was ist hier der Unterscheid?

Ich nutze Windows 7 x64 mit Delphi 2007.

Grüße

Stefan Westner

Geändert von swestner (31. Aug 2012 um 10:29 Uhr) Grund: Neue Erkenntnis hinzugefügt... :-)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 15:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf