Laden...

c enums benutzen?

Erstellt von unconnected vor 17 Jahren Letzter Beitrag vor 17 Jahren 1.295 Views
unconnected Themenstarter:in
849 Beiträge seit 2006
vor 17 Jahren
c enums benutzen?

Hallo, ich hab ein problem mit dem Benutzen von unmanged code.

Folgende Situation:

ich habe eine dll von der ich den Quellcode leider nicht einsehen kann,

ausserdem habe ich 2 .h Datein in denen Funktionen und Enums beschrieben sind.

Die Funktionen kann ich alle mit dllimport benutzen, nur die Funktionen die als Rückgabewert einen Enum haben, bereiten mir probleme. Ich kann Sie aufrufen und sie werden auch ausgeführt nur als Rückgabewert bekomme ich eine ca. 8 stellige Integer (Sieht mir aus wie nen pointer) zurück.

Kann ich von diesem Pointer oder integer irgendwie wieder Rückschlüsse auf den eigentlichen Wert des Enums schliessen?

SomeEnum x = SomeMethod(ref _deviceObject, devicePort);

[DllImport("somedll.dll")]
private static extern SomeEnum SomeMethod(ref IntPtr someVariable, int iPort);

Wenn ich nun dieses aufrufe habe ich in x diesen besagten 8 stelligen Integer stehen.

Ausserdem habe ich noch eine .lib Datei.. aber mit der weis ich überhaupt nichts anzufangen.

Hoffe irgendjemand kann mir bei meinem Problem helfen.

Gruss

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo unconnected,

vermutlich ist der Wert, den zu zurückbekommt, eine Verknüpfung von mehreren Enum-Werte. Das ist dann sehr wahrscheinlich, wenn in dem Original-Enum die Werte als 0x0001, 0x0002, 0x0004, 0x0008, 0x0010, 0x0020 usw. definiert sind. Siehe auch FlagsAttribute-Klasse

herbivore

unconnected Themenstarter:in
849 Beiträge seit 2006
vor 17 Jahren

Danke für den Tip, werde ich mir anschauen und Berichten 🙂

unconnected Themenstarter:in
849 Beiträge seit 2006
vor 17 Jahren

Leider ist dem nicht so.. die enums sind immer ohne lücken durchnummeriert. Noch irgendwelche vorschläge? so nen Mist das muss doch irgendwie fluppen...

mal abgesehen von nem enum.. wenn ich aus so einer methode einen Pointer auf ein object bekomme, von dem ich nicht weis was es ist, kann ich dem irgendwie nachgehen?

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo unconnected,

tja, wenn aus der Doku der Funktion nicht hervorgeht, warum man da solche Werte zurückbekommt, dann weiß ich auch nicht.

herbivore

unconnected Themenstarter:in
849 Beiträge seit 2006
vor 17 Jahren

mist zu spät.. herbivore, ich hab den letzten beitrag nochmal editiert gehabt.