Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

06.04.2010, 16:28

Instance einer DLL ermitteln

Im Buch im Kapitel mit der Einführung in DirectInput, wird bei der Funktion DirectInput8Create geschrieben, das man die Funktion in einer DLL Initialisieren will für den Parameter 1 die Instance auf die DLL benötigt.
Wie kann ich an diese Instance kommen ?

Danke !
:)

GR-PA

Treue Seele

Beiträge: 326

Wohnort: Daheim

Beruf: Faulenzer

  • Private Nachricht senden

2

06.04.2010, 16:34

Entweder als Parameter der DllMain
oder mit GetModuleHandle
Signaturen werden überbewertet

3

06.04.2010, 16:59

Die Frunktion DirectInput8Create wird in einer Funktion der DLL ausgeführt.
Wenn ich hier an GetModuleHandle NULL übergebe bekomme ich dann ein Handle auf die DLL oder muss ich als Parameter (Auch aus der DLL heraus) den Filename der compilierten DLL übergeben ?

GR-PA

Treue Seele

Beiträge: 326

Wohnort: Daheim

Beruf: Faulenzer

  • Private Nachricht senden

4

06.04.2010, 17:06

Wenn ich hier an GetModuleHandle NULL übergebe bekomme ich dann ein Handle auf die DLL

ja
Edit: oder auch nicht... Erst denken, dann schreiben (siehe weiter unten) :rolleyes:
Signaturen werden überbewertet

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »GR-PA« (07.04.2010, 19:56)


5

06.04.2010, 17:09

Ich Danke dir und werde es so machen .

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

6

06.04.2010, 17:11

Wenn ich hier an GetModuleHandle NULL übergebe bekomme ich dann ein Handle auf die DLL

ja

Nein!
@D13_Dreinig

GR-PA

Treue Seele

Beiträge: 326

Wohnort: Daheim

Beruf: Faulenzer

  • Private Nachricht senden

7

06.04.2010, 17:46

Wenn ich hier an GetModuleHandle NULL übergebe bekomme ich dann ein Handle auf die DLL

ja

Nein!

OMG hast recht tut mir leid (nobody's perfect 8) )
Du bekommst damit natürlich das Handle des aufrufenden Programms und nicht das der DLL. Mein Vorschlag wäre, das Handle in der DllMain global zu speichern...
Signaturen werden überbewertet

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

8

06.04.2010, 17:52

Wozu denn? GetModuleHandle("Modulname") liefert doch den gewünschten Handle.
@D13_Dreinig

GR-PA

Treue Seele

Beiträge: 326

Wohnort: Daheim

Beruf: Faulenzer

  • Private Nachricht senden

9

06.04.2010, 18:00

Birgt aber die Gefahr eines gut versteckten Fehlers, wenn sich der Name der DLL ändert...
Wenn das allerdings unwahrscheinlich ist, dann ist das natürlich eine bessere Lösung.
Signaturen werden überbewertet

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

10

06.04.2010, 18:11

Wenn sich der Name ändert kann die DLL ohnehin nicht mehr geladen werden. Es besteht also keine wirkliche Gefahr.
@D13_Dreinig

Werbeanzeige