C++ 换算2010年与2015年之间的差异
您好,我有一段用VS2010编写的代码:C++ 换算2010年与2015年之间的差异,c++,visual-studio-2010,visual-studio-2015,type-conversion,C++,Visual Studio 2010,Visual Studio 2015,Type Conversion,您好,我有一段用VS2010编写的代码: unsigned long CHwFingerprint::toHash(wstring& wmisignature) { if (wmisignature.empty()) wmisignature = _empty; hash<wstring> str_hash; unsigned long hash = (unsigned long)str_hash(wmisignature);
unsigned long CHwFingerprint::toHash(wstring& wmisignature)
{
if (wmisignature.empty())
wmisignature = _empty;
hash<wstring> str_hash;
unsigned long hash = (unsigned long)str_hash(wmisignature);
return hash;
}
*wstring只是我们创建的一个Unicode字符串,可以用作CString
现在,当我在VS 2015中使用此代码时,得到了不同的结果。
例如,如果wmisignature=HMT351U6CFR8C-PB
结果如下:
VS 2010:hash=229184272
VS 2015:hash=4005003184
知道为什么吗?实际的哈希函数依赖于实现,因此可能与编译器不同 从C++14开始:
散列函数只需要在程序的一次执行中为相同的输入生成相同的结果;这允许使用盐哈希来防止冲突拒绝服务攻击。实际的哈希函数依赖于实现,因此可能与编译器不同 从C++14开始:
散列函数只需要在程序的一次执行中为相同的输入生成相同的结果;这允许使用盐哈希来防止冲突拒绝服务攻击。右键单击项目并选择属性。
在配置->常规->平台工具集下,更改为v100。右键单击项目并选择属性。 在配置->常规->平台工具集下,更改为v100