Wer weiß, wo eine gute Windows ständig Liste Leben

stimmen
-2

Ich versuche, einen ungültigen Wert auf -1 gesetzt .. Aber ich weiß nicht wie magische Zahlen .. Wer weiß, wo eine Reihe von gemeinsamen Konstanten zu finden. Ich arbeite in VS6 (ish).

Ich versuche, eine Datei aus über ein Netzwerk zu lesen, und ich brauche einen schlechten Wert für die Gesamtgröße der Datei, damit ich weiß, ob ich gültige Informationen über sie bekam .. 0 ist eine gültige Größe, so kann ich nicht verwenden.

Harper Shelby HIT DES Nagel auf den Kopf .. Nur ein wenig Daumen. Er erwähnte die win32 Konstanten .. das ist genau das, was ich dachte über .. Jetzt einen Link zu finden :)

Veröffentlicht am 09/12/2008 um 22:41
quelle vom benutzer
In anderen Sprachen...                            


8 antworten

stimmen
2

Wenn -1 ein ungültiger Wert für einen Rückgabewert in dem System ist, sollten Sie es definieren intern:

const int INVALID_FOO = -1

es sei denn, C-Kompatibilität erforderlich ist, in welchem ​​Fall

#define INVALID_FOO -1

wäre bevorzugt. Wenn es sich um eine Standard-MFC oder Windows-Ressource ist, verwenden Sie INVALID_HANDLE oder eine der anderen Win32-Konstanten definiert.

Beantwortet am 09/12/2008 um 22:46
quelle vom benutzer

stimmen
2

#define BAD_VALUE -1

EDIT: die ursprüngliche Frage hatte keinen Zusammenhang. Die überarbeitete Frage gibt eine ungültige Dateigröße wollen und sind somit für die win32 Konstanten suchen. Schauen Sie sich windows.h Ich denke , die Konstante , die Sie suchen in sein windows.h oder einer ihrer Unter enthält. grep Ihre Fenster schließen Verzeichnis ;-)

Beantwortet am 09/12/2008 um 22:46
quelle vom benutzer

stimmen
1

Wenn Sie möchten, Konstanten von WinApi verwendet verwenden, überprüfen Sie die Winerror.h, Winuser.h und WinNT.h Dateien.

Beantwortet am 12/08/2010 um 13:21
quelle vom benutzer

stimmen
1

Das erste, was ist, sollten Sie eine unsigned int für die Dateigröße verwenden als eine Dateigröße nie negativ ist. Jetzt eine ungültige Dateigröße ist normalerweise der max int so im Fall eines 32-Bit unsigned int verwenden würde es 0xFFFFFFFF sein

dh

const unsigned int INVALID_FILESIZE = 0xFFFFFFFF;

Auch wenn diese an den Fenstern ist, windows.h definiert ungültige Dateigröße alle bereit (INVALID_FILE_SIZE)

Beantwortet am 10/12/2008 um 05:27
quelle vom benutzer

stimmen
1

In VS, Erstellen Sie ein neues Windows-Konsole Anwendungsprojekt. Gehen Sie in Projekteinstellungen und schalten Sie Browse-Unterstützung. Erstellen Sie eine C ++ Datei und fügen Sie es dem Projekt hinzu. Art:

#include <windows.h>
void main(void) {}

in die Datei. Kompilieren. Nun INVALID_FILE_SIZE in die Datei ein. Rechten Maustaste darauf und gehe zu Definition von INVALID_FILE_SIZE. VS öffnet eine der vielen Fenster Header-Dateien voll von definierten Werten. Genießen.

Beantwortet am 10/12/2008 um 01:19
quelle vom benutzer

stimmen
1

Sie möchten Ihre eigene magische Zahl verwenden -1 als Windows-Konstante verkleidet. Das ist sehr irreführend.

Angenommen passieren Ich weiß, dass INVALID_HANDLE ist 0. Ist es OK, um meine Zeiger mit INVALID_HANDLE zu initialisieren?

char *myMessage = INVALID_HANDLE;

Wie funktioniert dieser Streik Sie?

Beantwortet am 10/12/2008 um 00:46
quelle vom benutzer

stimmen
-1
If bytes_read < 0
    // error
EndIf
Beantwortet am 10/12/2008 um 00:53
quelle vom benutzer

stimmen
-1

Es ist im Allgemeinen der 0 und 1 (positiv und negativ) sind OK zu verwenden, um direkt akzeptiert.

In der Tat, es wird wahrscheinlich machen Sie Code noch verwirrender stattdessen eine Variable zu verwenden.

Update: OK, Sie auf dem Laufenden Ihre Frage, nachdem ich meine Antwort geschrieben. Wenn Sie mit „-1“ in einer arithmetischen Art und Weise, dann nur „-1“ ist in Ordnung. Wenn Sie einen Fehlercode zurückgeben (und der Code passiert einfach -1 sein), dann sollten Sie eine const verwenden.

 const int INVALID_VALUE = -1;
Beantwortet am 09/12/2008 um 22:47
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more