gpt4 book ai didi

windows - 任何我不应该在我的Visual C++程序中添加GUID验证的原因?

转载 作者:行者123 更新时间:2023-12-03 08:03:53 24 4
gpt4 key购买 nike

为了使我的Visual C++程序更健壮,我很想插入检查GUID变量contain valid version 4 GUIDs(并且不要未初始化):

GUID guid;
UuidCreate( &guid );
// many lines of code later...
// the following assert should not fire for valid version 4 GUIDs
int data3 = guid.Data3;
assert( ( data3 >> 12 ) == 4 );

我完全确定所有的GUID通常要么来自 UuidCreate()函数中,要么是未初始化的变量(而后者正是我想要通过这些检查来诊断的变量)。我唯一关心的是Microsoft可能会突然更改Windows future 版本中的GUID实现。

我应该考虑其他哪些因素来决定这种检查是否有效?在将来的Windows版本中,GUID实现发生更改的可能性也有多大?

最佳答案

My only concern is Microsoft could suddenly change GUID implementation in future versions of Windows.



如果发生,请处理。不,严重的是,您还可以担心 integer的实现,Microsoft可以决定切换到.NET数据类型,并使系统范围内 integer的值变为4字节。

担心其他事情,如果实现发生变化,则无论如何都必须重写/更改/修复程序。

编辑:如果我理解正确,那么您担心的是函数的返回值,而不是GUID-Structure本身。您的意思是,目前它可以返回GUID或未初始化的值,但是在将来的实现中,它可能返回0填充的GUID?

在这种情况下,我会坚持第一段,如果它发生,请担心它。目前,该功能具有明确定义的行为,请配合使用。检查未初始化的值,仅此而已。您无法猜测Microsoft将来会做什么( hell ,有时甚至Microsoft也无法做到)。

关于windows - 任何我不应该在我的Visual C++程序中添加GUID验证的原因?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4497604/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com