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

发布于 2024-07-10 18:56:59 字数 236 浏览 13 评论 0原文

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

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

哈珀·谢尔比(Harper Shelby)一针见血……只需一点点拇指即可。 他提到了 win32 常量..这正是我正在考虑的..现在找到一个链接:)

I'm trying to set an invalid value to -1.. But I don't like magic numbers.. Anyone know where to find a set of common constants. I'm working in VS6 (ish).

I'm trying to read a file from across a network, and I need a bad value for the total file size,so I know if I got valid info on it.. 0 is a valid size so I can't use that.

Harper Shelby HIT THE NAIL ON THE HEAD.. Just a little thumb.
He mentioned the win32 constants.. which is exactly what I was thinking about.. Now to find a link :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

舞袖。长 2024-07-17 18:56:59
#define BAD_VALUE -1

编辑:原来的问题没有上下文。 修改后的问题表明您想要一个无效的文件大小,因此正在寻找 win32 常量。 看看 windows.h 我认为您寻找的常量可能在 windows.h 或其子包含之一。 grep 你的 Windows 包含目录;-)

#define BAD_VALUE -1

EDIT: the original question had no context. The revised question indicates you want an invalid file size and are thus looking for the win32 constants. Look at windows.h i think the constant you seek may be in windows.h or one of its sub-includes. grep your windows include directory ;-)

德意的啸 2024-07-17 18:56:59

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

const int INVALID_FOO = -1

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

#define INVALID_FOO -1

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

If -1 is an invalid value for a return value in your system, you should define it internally:

const int INVALID_FOO = -1

unless C compatibility is needed, in which case

#define INVALID_FOO -1

would be preferred. If it's a standard MFC or Windows resource, use INVALID_HANDLE or one of the other Win32-defined constants.

嘦怹 2024-07-17 18:56:59

您想使用自己的幻数 -1 伪装成 Windows 常量。 这是非常具有误导性的。

假设我碰巧知道 INVALID_HANDLE 为 0。用 INVALID_HANDLE 初始化我的指针可以吗?

char *myMessage = INVALID_HANDLE;

这让你有何感想?

You want to use your own magic number -1 disguised as a Windows constant. This is very misleading.

Suppose I happen to know that INVALID_HANDLE is 0. Is it OK to initialize my pointers with INVALID_HANDLE?

char *myMessage = INVALID_HANDLE;

How does this strike you?

对你的占有欲 2024-07-17 18:56:59

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

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

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

In VS, Create a new windows console application project. Go into project settings and turn on browse support. Create a C++ file and add it to the project. Type:

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

into the file. Compile it. Now type INVALID_FILE_SIZE into the file. Right click on it and goto definition of INVALID_FILE_SIZE. VS will open one of the many windows header files full of defined values. Enjoy.

魔法唧唧 2024-07-17 18:56:59

首先,您应该使用 unsigned int 来表示文件大小,因为文件大小永远不会是负数。 现在,无效文件大小通常是最大 int,因此在使用 32 位无符号 int 的情况下,它将是 0xFFFFFFFF

即,

const unsigned int INVALID_FILESIZE = 0xFFFFFFFF;

如果这是在 Windows 上,windows.h 定义了无效文件大小已准备好(INVALID_FILE_SIZE)

First thing is you should be using an unsigned int for file size as a file size is never negative. Now an invalid file size is normally the max int so in the case of using a 32 bit unsigned int it would be 0xFFFFFFFF

i.e.

const unsigned int INVALID_FILESIZE = 0xFFFFFFFF;

Also if this is on windows, windows.h defines invalid file size all ready (INVALID_FILE_SIZE)

金橙橙 2024-07-17 18:56:59

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

If you want to use constants used by WinApi, check out the WinError.h, WinUser.h and WinNT.h files.

梦屿孤独相伴 2024-07-17 18:56:59

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

事实上,使用变量可能会让您的代码更加混乱。

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

 const int INVALID_VALUE = -1;

It's generally accepted the 0 and 1 (positive & negative) are OK to use directly.

In fact, it'll probably make you code even more confusing to use a variable instead.

Update: OK, you updated your question after I wrote my answer. If you are using "-1" in an arithmetic way, then just "-1" is fine. If you are returning a error code (and the code just happens to be -1) then you should use a const.

 const int INVALID_VALUE = -1;
我恋#小黄人 2024-07-17 18:56:59
If bytes_read < 0
    // error
EndIf
If bytes_read < 0
    // error
EndIf
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文