PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Win API / DDK Probleme mit Setupx.h


Velvett
27.02.2002, 13:12
Ich habe versucht die setupx.h in mein Projekt einzubinden. Beim kompilieren des Projektes kamen sehr viele Fehler in der setupx.h Datei. Danach habe ich versucht die zugehörige dll zu laden mit dem Befehl LoadLibrary("setupx.dll") aber dies schlug auch fehl.
Ich brauche die Funktionen dieser Bibliothek sehr dringend. Kann mir vielleicht jemand helfen?
Danke


xOOn
27.02.2002, 13:31
generall um eine dll unter cpp zu laden braucht man die dazugehoerige lib datei.

beim c++ builder und visual c++ gibt es soviel wie ich weiss ein tool welches dir aus der dll die lib erstellt.

beim builder heisst das tool IMPLIB und befindet sich im Bin verzeichniss. selbst hab ich es noch nie getestet

TheToast
28.02.2002, 14:26
Das hatte ich mal beim VS probiert, da hatte der irgendeinen seltsamen Fehler, aber wenn man DLLs per LoadLibrary einbindet, braucht man keine DLL, da muss es an was anderem liegen, sag mal die Fehlernummer die GetLastError() zurückliefert.

Patrik Graf
28.02.2002, 15:40
wenn man DLLs per LoadLibrary einbindet, braucht man keine DLL

Da stimmt doch etwas nicht, oder? :D

Felix Kaiser
28.02.2002, 17:03
IMPLIB is schwul, hatte zwar dann ne .LIB Datei, aber die hatte der Compiler nich gefressen. Daher hab ich anstatt die statische Importierung von Bibliotheken die dynamische genommen über LoadLibrary, FreeLibrary und GetProcAddress.

Mich würd jetz mal interessieren was das DDK im Titel dieses Themas zu suchen hat, da hier imo kein Wort über das Teil erwähnt wird. Dir ist schon klar, dass es das Tool von Microsoft ist um Windows Treiber zu schreiben?

Velvett
28.02.2002, 19:05
Die Setupx.dll (bzw. Setupx.lib) ist eine DDK Library. Deswegen DDK im Thema...
Die Setupx.dll ist zwar im Windows System Ordner drin, aber die Header und lib dazu werden nur mit DDK mitgeliefert.
Aber die Setupx.h erweist Fehler, deswegen mein Versuch diese Library dynamisch mittels dll zu binden...

Felix Kaiser
28.02.2002, 19:53
Wo liegt jetzt genau das Problem? Wenn du mit LoadLibrary nen gültiges Handle auf die DLL bekommst isses doch nur noch mit GetProcAddress die Adresse lesen und diese Adresse als Funktion zu behandeln. Mehr isses doch garnich, wo liegt das Problem?

Velvett
01.03.2002, 07:24
Das Problem liegt darin dass ich immer einen NULL-Pointer zurückgeliefert bekomme, und ich verstehe nicht wieso... In der MSDN steht dass wenn die dllMain ein FALSE zurückliefert, dann bekommt man einen NULL-Handle. Aber irgendwie muss es doch möglich sein diese Library zu laden... Paar windows Programme tun es doch auch und es geht :baby:
Das ist zum verzweifeln.................

Velvett
01.03.2002, 11:00
Ich glaube ich habe mein Fehler gefunden (ich hoffe es).
Ich denke es kann daran liegen, dass ich 32-Bit Version von Visual Studio benutze und die Setupx.dll eine 16-Bit Library ist.
Ich hoffe das ist es !!!

Felix Kaiser
01.03.2002, 13:38
Diagnose: Du hast diese DLL nicht. Die SETUPX.LIB ist ein Modul für WindowsME Systeme. Wenn überhaupt ist diese DLL nur bei WindowsME dabei. Für die anderen Systeme gibt es die SETUPAPI.DLL, die ist erstmal doch beachtlich groß und 32-Bit. Hefte dich mal an deren Versen...

PS: Den aktuellsten DDK für Win2000 & WinME habe ich auch installiert...

Velvett
01.03.2002, 14:56
Das stimmt nicht. Setupx.dll ist sowohl bei Windows98 als auch bei WindowsMe dabei.
Und es geht jetzt... Ich habe Visual Studio (Visual c++) mit 16-Bit Compiler installiert und jetzt kann ich diese dll dynamisch laden.

Felix Kaiser
01.03.2002, 15:46
Und bei Windows NT, XP, 2000 oder .NET gehts dann nicht mehr, toll, wie? Welche Funktion brauchst du genau aus der Bibliothek?

xOOn
01.03.2002, 15:56
IMPLIB is schwul, hatte zwar dann ne .LIB Datei, aber die hatte der Compiler nich gefressen. Daher hab ich anstatt die statische Importierung von Bibliotheken die dynamische genommen über LoadLibrary, FreeLibrary und GetProcAddress.

naja schwul wird sie nicht sein :D :D :D

aber dass implib alles andere als das ware ist das ist schon richtig.

irgendwie scheint das ganze nicht so gut zu funktionieren! 8) 8)

Velvett
01.03.2002, 17:02
Ich brauche nicht nur Funktionen aus dieser dll, sondern auch Stukturen ... Insbesondere _DEVICE_INFO Struktur. Und jetzt habe ich das nächste Problem: ich kann jetzt zwar die Funktionen einbinden (LoadLibrary und GetProcAddress funktionieren), aber ich weiß nicht wie man eine Struktur einbindet.
Kann mir da vielleicht jemand helfen?

Felix Kaiser
01.03.2002, 18:13
Die Struktur kannste doch problemlos aus SETUPX.H übernehmen, entweder über #include oder über Copy´n´Paste.

Velvett
01.03.2002, 18:35
Danke. Ich versuche es mal...
Aber gibt es wirklich keine Möglichkeit die Struktur so ähnlich wie die Funktionen zu laden ???

Felix Kaiser
01.03.2002, 20:22
Dynamisch - Nein! :)