konvertieren von konstanten -> int ?

30/06/2008 - 11:23 von Rainer Queck | Report spam
Hallo NG,

für den Zugriff auf ein externes Device importiere ich mir dessen DLL.
Die meisten darin enthaltenen Funktionen liefern ein "int" zurück, welches
im Fehlerfall <0 ist.
Die "Errorcodes" stehen mir in einer Headerdatei zur Verfügung in der Form :

#define ERR_NO_SUCH_DEVICE 0xA0100001;

ich würde diese Errorcodes gerne in ein Enum fassen in der Art:

public enum err
{
ERR_NO_SUCH_DEVICE = 0xA0100001,
..
}

aber hier erhalte ich die Fehlermeldung " uint kann nicht implizit in int
konvertiert werden.". Ein Typcast wird auch nicht akzeptiert.
Auch der Versuch, dann eben einfach Konstanten zu definieren:
private const int ERR_NO_SUCH_DEVICE = 0xA0100001;
schlàgt mit der gleichen Fehlermeldung fehl.

Wie ist den für solche Fàlle das meist verwendete vorgehen?

Danke für Hilfe und Hinweise!

Gruß
Rainer Queck
 

Lesen sie die antworten

#1 Rainer Queck
30/06/2008 - 11:43 | Warnen spam
... wie so oft im Leben... man sucht, sucht,... findet nix schreibt in eine
NG, und 5 Minuten spàter findet man die Lösung selbst :-|
In meinem Fall heißt diese "ERR_NO_SUCH_DEVICE = unchecked
((int)0xA0100001);

Gruß
Rainer

"Rainer Queck" schrieb im Newsbeitrag
news:
Hallo NG,

für den Zugriff auf ein externes Device importiere ich mir dessen DLL.
Die meisten darin enthaltenen Funktionen liefern ein "int" zurück, welches
im Fehlerfall <0 ist.
Die "Errorcodes" stehen mir in einer Headerdatei zur Verfügung in der Form
:

#define ERR_NO_SUCH_DEVICE 0xA0100001;

ich würde diese Errorcodes gerne in ein Enum fassen in der Art:

public enum err
{
ERR_NO_SUCH_DEVICE = 0xA0100001,
..
}

aber hier erhalte ich die Fehlermeldung " uint kann nicht implizit in int
konvertiert werden.". Ein Typcast wird auch nicht akzeptiert.
Auch der Versuch, dann eben einfach Konstanten zu definieren:
private const int ERR_NO_SUCH_DEVICE = 0xA0100001;
schlàgt mit der gleichen Fehlermeldung fehl.

Wie ist den für solche Fàlle das meist verwendete vorgehen?

Danke für Hilfe und Hinweise!

Gruß
Rainer Queck

Ähnliche fragen