Кто-нибудь знает, где живет хороший постоянный список Windows - PullRequest
0 голосов
/ 10 декабря 2008

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

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

Харпер Шелби УДЕРЖИЛ ГВОЗДЬ НА ГОЛОВУ .. Просто маленький палец. Он упомянул константы win32 .. это именно то, о чем я думал .. Теперь, чтобы найти ссылку:)

Ответы [ 8 ]

2 голосов
/ 10 декабря 2008

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

const int INVALID_FOO = -1

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

#define INVALID_FOO -1

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

2 голосов
/ 10 декабря 2008
#define BAD_VALUE -1

РЕДАКТИРОВАТЬ: исходный вопрос не имел контекста. Пересмотренный вопрос указывает на то, что вы хотите указать неверный размер файла и, следовательно, ищете константы win32. Посмотрите на windows.h Я думаю, что искомая константа может быть в windows.h или одном из его под-включений grep ваш каталог включает в себя; -)

1 голос
/ 12 августа 2010

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

1 голос
/ 10 декабря 2008

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

т.е.

const unsigned int INVALID_FILESIZE = 0xFFFFFFFF;

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

1 голос
/ 10 декабря 2008

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

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

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

1 голос
/ 10 декабря 2008

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

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

char *myMessage = INVALID_HANDLE;

Как это тебя поразило?

0 голосов
/ 10 декабря 2008
If bytes_read < 0
    // error
EndIf
0 голосов
/ 10 декабря 2008

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

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

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

 const int INVALID_VALUE = -1;
...