Кто-нибудь знает, где находится хороший постоянный список Windows

StackOverflow https://stackoverflow.com/questions/354329

Вопрос

Я пытаюсь установить недопустимое значение равным -1..Но мне не нравятся магические числа..Кто-нибудь знает, где найти набор общих констант.Я работаю в VS6 (ish).

Я пытаюсь прочитать файл по сети, и мне нужно неверное значение для общего размера файла, чтобы я знал, есть ли у меня достоверная информация о нем..0 - это допустимый размер, поэтому я не могу его использовать.

Харпер Шелби ПОПАЛА В САМУЮ ТОЧКУ..Просто маленький большой палец.Он упомянул константы win32..это именно то, о чем я думал..Теперь, чтобы найти ссылку :)

Это было полезно?

Решение

#define BAD_VALUE -1

Редактировать:первоначальный вопрос не имел контекста.Пересмотренный вопрос указывает, что вам нужен недопустимый размер файла и, таким образом, вы ищете константы win32.Посмотрите на windows.h я думаю, что константа, которую вы ищете, может быть в windows.h или одно из его под-включений.grep ваш каталог Windows include ;-)

Другие советы

Если -1 является недопустимым значением для возвращаемого значения в вашей системе, вы должны определить его внутренне:

const int INVALID_FOO = -1

если только не требуется совместимость с C, и в этом случае

#define INVALID_FOO -1

было бы предпочтительнее.Если это стандартный ресурс MFC или Windows, используйте INVALID_HANDLE или одну из других констант, определенных в Win32.

Вы хотите использовать свое собственное магическое число -1, замаскированное под константу Windows.Это очень вводит в заблуждение.

Предположим, я случайно знаю, что INVALID_HANDLE равен 0.Можно ли инициализировать мои указатели с помощью INVALID_HANDLE?

char *myMessage = INVALID_HANDLE;

Как вам это кажется?

В VS создайте новый проект консольного приложения Windows.Зайдите в настройки проекта и включите поддержку просмотра.Создайте файл C ++ и добавьте его в проект.Тип:

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

в файл.Скомпилируйте его.Теперь введите INVALID_FILE_SIZE в файл.Щелкните по нему правой кнопкой мыши и получите определение INVALID_FILE_SIZE.VS откроет один из многих заголовочных файлов Windows, полных определенных значений.Наслаждайся.

Во-первых, вы должны использовать unsigned int для определения размера файла, поскольку размер файла никогда не бывает отрицательным.Теперь недопустимый размер файла обычно равен max int поэтому в случае использования 32 разрядного unsigned int это будет 0xFFFFFFFF

т. е.

const unsigned int INVALID_FILESIZE = 0xFFFFFFFF;

Также, если это в Windows, windows.h определяет недопустимый размер файла, все готово (INVALID_FILE_SIZE)

Если вы хотите использовать константы, используемые WinAPI, ознакомьтесь с файлами WinError.h, WinUser.h и WinNT.h.

Общепринято, что 0 и 1 (положительные и отрицательные) можно использовать напрямую.

На самом деле, использование переменной вместо этого, вероятно, сделает ваш код еще более запутанным.

Обновить:Хорошо, вы обновили свой вопрос после того, как я написал свой ответ.Если вы используете "-1" в арифметическом смысле, то просто "-1" подойдет.Если вы возвращаете код ошибки (и код просто оказывается равным -1), то вам следует использовать const .

 const int INVALID_VALUE = -1;
If bytes_read < 0
    // error
EndIf
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top