In Sachen DLL nutzen

19/11/2011 - 09:39 von Robert Hartmann | Report spam
Hallo zusammen,

nach Microsoft Dokumentation [1] gibt es in der wininet.dll die
Funktion GetUrlCacheConfigInfo.

Ein Blick in die wininet.dll mit dem DependencyViewer zeigt, die
funktion gibt es.

Mit einer VS2005 Installation auf WinXP làsst sich leider
der zu compilierende Code nicht übersetzen, denn in der wininet.h
von VS2005 fehlt die Bekanntmachung besagter Funktion.
Auch scheint in der wininet.h des MinGW gcc-ports die Funktion
zu fehlen.

Bin ich auf dem Holzweg, wenn ich mit "extern" versuche den
Prototyp der Funktion bekannt zu machen?

Beste Grüße,
Robert

[1] http://msdn.microsoft.com/en-us/lib...p/cc817578
 

Lesen sie die antworten

#1 Ulrich Eckhardt
21/11/2011 - 09:25 | Warnen spam
Am 19.11.2011 09:39, schrieb Robert Hartmann:
nach Microsoft Dokumentation [1] gibt es in der wininet.dll die
Funktion GetUrlCacheConfigInfo.


[...]
Mit einer VS2005 Installation auf WinXP làsst sich leider
der zu compilierende Code nicht übersetzen, denn in der wininet.h
von VS2005 fehlt die Bekanntmachung besagter Funktion.



Im allgemeinen hilft es ein neueres SDK zu installieren. Aber: U.U.
fehlt nur das entsprechende Makro (ich glaube _WIN32_WINNT, such' mal im
Netz) welches sagt dass Du fuer XP und neuere Versionen kompilierst.
Achja, und Dir ist schon klar dass Dein Programm damit nicht mehr unter
w2k oder w98 laeuft, aber die gibt's ja offiziell eh' schon nicht mehr.


Auch scheint in der wininet.h des MinGW gcc-ports die Funktion
zu fehlen.



Kann auch sein oder den selben Grund haben.


Bin ich auf dem Holzweg, wenn ich mit "extern" versuche den
Prototyp der Funktion bekannt zu machen?



Ja, "extern" ist nie notwendig fuer Funktionsdeklarationen. Ansonsten
kannst Du Dir natuerlich die Funktion irgendwo deklarieren. Es koennte
noch sein dass die DLL-Stubs (also die .LIB gegen die Du linkst) die
Funktion nicht unterstuetzen. Erster Ansatz waere dann das neue SDK.
Zweiter Ansatz waere die Funktion mittels GetProcAddress() direkt aus
der DLL zu ziehen. Wenn das NULL liefert, wie z.B. unter w2k, kannst Du
dann auch andere Wege gehen, falls das fuer Dich ein wichtiges
Zielsystem ist.

Viel Erfolg!

Uli

Ähnliche fragen