任何人都知道一个好的Windows常量列表在哪里

时间:2008-12-09 21:41:18

标签: c++ mfc constants vc6 numerical

我正在尝试将无效值设置为-1 ..但我不喜欢魔术数字..任何人都知道在哪里可以找到一组常见的常量。我在VS6(ish)工作。

我正在尝试从网络中读取文件,并且我需要一个总文件大小的错误值,所以我知道我是否获得了有效信息.. 0是有效大小所以我不能用那个。

哈珀谢尔比击中了头上的指甲..只是一个小拇指。 他提到了win32常量..这正是我的想法..现在找到一个链接:)

8 个答案:

答案 0 :(得分:2)

#define BAD_VALUE -1
编辑:原始问题没有背景。修改后的问题表明您希望文件大小无效,因此需要查找win32常量。看看windows.h我认为你寻找的常数可能在windows.h或其中一个子包含。 grep你的windows包含目录; - )

答案 1 :(得分:2)

如果-1是系统中返回值的无效值,则应在内部定义:

const int INVALID_FOO = -1

除非需要C兼容性,在这种情况下

#define INVALID_FOO -1

将是首选。如果它是标准的MFC或Windows资源,请使用INVALID_HANDLE或Win32定义的其他常量之一。

答案 2 :(得分:1)

首先,你应该使用unsigned int作为文件大小,因为文件大小永远不会是负数。现在无效的文件大小通常是max int所以在使用32位无符号整数的情况下,它将是0xFFFFFFFF

const unsigned int INVALID_FILESIZE = 0xFFFFFFFF;

此外,如果这是在Windows上,则windows.h定义了无效的文件大小(INVALID_FILE_SIZE)

答案 3 :(得分:1)

如果要使用WinApi使用的常量,请查看WinError.h,WinUser.h和WinNT.h文件。

答案 4 :(得分:1)

您希望使用自己的幻数-1伪装成Windows常量。这是非常误导的。

假设我碰巧知道INVALID_HANDLE为0.用INVALID_HANDLE初始化指针是否可以?

char *myMessage = INVALID_HANDLE;

这对你有什么影响?

答案 5 :(得分:1)

在VS中,创建一个新的Windows控制台应用程序项目。进入项目设置并打开浏览支持。创建一个C ++文件并将其添加到项目中。类型:

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

进入文件。编译它。现在在文件中键入INVALID_FILE_SIZE。右键单击它并转到INVALID_FILE_SIZE的定义。 VS将打开许多已定义值的Windows头文件中的一个。享受。

答案 6 :(得分:-1)

一般认为0和1(正面和负面)可以直接使用。

事实上,它可能会让你的代码变得更加混乱,而不是使用变量。

更新:好的,你在我写完答案后更新了你的问题。如果你以算术方式使用“-1”,那么只需“-1”即可。如果您返回错误代码(并且代码恰好是-1),那么您应该使用const。

 const int INVALID_VALUE = -1;

答案 7 :(得分:-1)

If bytes_read < 0
    // error
EndIf
豫ICP备18024241号-1