Laden...

DLL Import und DKK

Erstellt von iberendes vor 19 Jahren Letzter Beitrag vor 19 Jahren 3.206 Views
I
iberendes Themenstarter:in
50 Beiträge seit 2004
vor 19 Jahren
DLL Import und DKK

Ich habe jetzt vor auch in die DKK einzusteigen und habe dazu erstmal eine grundsätzliche Frage.
Ich importiere eine Funktion mit [DllImport("cfgmgr32.dll")].
In der DKK steht in der cfgmgr32.h der Prototyp der Funktion.
Allerdings weiß ich nicht, welche Parameter die Funktion alle annimmt und verarbeitet.
Der Prototyp sieht z.B. so aus:

CMAPI
CONFIGRET
WINAPI
CM_Set_HW_Prof_FlagsA(
             IN DEVINSTID_A szDevInstName,
             IN ULONG       ulConfig,
             IN ULONG       ulValue,
             IN ULONG       ulFlags
             );

Als Flags weiß ich aus mehreren Beispielen, dass es da mehrere Möglichkeiten gibt.
Z.b. CSCONFIGFLAG_DISABLE.

Zum richtigen Programmieren brauche ich aber eine komplette Dokumentation über die einzelnen Parameter dieser Funktionen.
Ich kann diese aber in der DKK nirgends finden.

Habe ich da irgendwas falsch verstanden?
Die Programmierer dieser Beispiele müssen die ja auch irgendwo her kennen.
Ein Beispiel ist z.B: dieses: Beispiel
Das wichtigste ist ganz unten in blau, wo es über die Flags geht.

Meine Frage ist jetzt:
Woher bekomme ich weitere Informationen über die Funktionen?
Mit den Prototypen alleine kann ich wenig anfangen, oder?

Vielen Dank für eure Hilfe im Voraus

C
980 Beiträge seit 2003
vor 19 Jahren

(Was ist DKK? Meinst du DDK?)

X
2.051 Beiträge seit 2004
vor 19 Jahren

Original von cdr
(Was ist DKK? Meinst du DDK?)

DKK = Deutsche Krankenkasse! 😁

333 Beiträge seit 2004
vor 19 Jahren

Jetzt unabhängig davon, was DKK bedeutet, aber du kannst anhand von Prototypen die Prozeduren/Funktionen über DllImport einfügen. In deinem Falle könnte das so aussehen:


[DllImport("cfgmgr32.dll", EntryPoint="CM_Set_HW_Prof_FlagsA")]
private static extern void SetHwProfFlagsA(
             DEVINSTID_A szDevInstName,
             uint        ulConfig,
             uint        ulValue,
             uint        ulFlags
             );

DEVINSTID_A sieht wie eine Struktur aus. Diese mußt du ebenfalls im Quellcode definieren und eventuell, je nach Aufbau und Art der Struktur, noch MarshalAs-Attribute verwenden, damit .NET weiß wie er Werte zu verarbeiten/umzuwandeln hat.

([bb]|[^b]{2})

I
iberendes Themenstarter:in
50 Beiträge seit 2004
vor 19 Jahren

Erstmal vielen Dank für eure Antworten.
Sorry, ich meinte die DDK.

Mit dem DllImport habe ich jetzt verstanden.
Nur, was ich noch nicht verstanden habe, ist:
Die Funktionen, die in cfgmgr32.dll exportiert sind, erwarten doch verschiedene Parameter, z.B. für Flags könnte man CSCONFIGFLAG_DISABLE einsetzen.
Aber es gibt da noch mehr Parameter, die man einsetzen könnte, je nach dem, was die Funktion machen soll.

Meine Frage ist ja, wo ich diese verschieden Parameter nachsehen kann.
D.h. wo es eine genau Beschreibung dieser einzelenen Funktionen gibt.
In der DDK finde ich nur die Prototypen, aber keinerlei Beschreibung, was die Funktionen machen.
Diese kenne ich nur aus dem Beispiel wir oben angegeben.

P
939 Beiträge seit 2003
vor 19 Jahren

Die Konstanten müssten in der Header-Datei cfgmgr32.h stehen, falls du sie hast. In der Online Msdn-Hilfe steht bisschen was zur Verwendung. Bei CM_Set_HW_Prof_Flags steht allerdings: diese Funktion nicht benutzen. Die Erklärung, warum nicht und was es als Ersatz gibt, fehlt leider.

Msdn-Hilfe: CM_Set_HW_Prof_Flags

T
28 Beiträge seit 2004
vor 19 Jahren

Hallo,
DDK scheint ja wichtig zu sein, kann mir vieleicht jemand sagen um was es sich mit DDK aufsich hat? X(

Hat sich erledigt =)

Mfg taotao