我想制作一个只允许你在一台计算机上使用我的程序的系统,有点像许可证系统。 例如:程序检查系统的卷信息,如果与允许它运行的卷匹配,则运行。
我的两个问题是, 1.这两种获取系统容量的方法之间的区别是什么?
int main()
{
cout << GetVolumeInformation << endl;
system("pause");
}
string GetMachineID()
{
DWORD dwSerial;
ostringstream oss;
if (!GetVolumeInformation(TEXT("C:\\"), NULL, 0, &dwSerial, NULL, NULL, NULL, 0))
{
oss << "Err_Not_Retrieved_" << GetLastError();
}
else
oss << dwSerial;
return oss.str();
}
string machid = GetMachineID();
const char *cstr = machid.c_str();
int main()
{
cout << cstr << endl;
system("pause");
}
它们各自返回一个不同的值,(第一个:xxxxxxxx数字和字母,第二个:xxxxxxxxxx只有数字)那么差异是什么? 我的第二个问题是,我应该将这些中的哪一个用于我的目的?
答案 0 :(得分:0)
第一个程序返回一个指向函数GetVolumeInformation的指针,它与第二个程序有很大不同,第二个程序获取卷信息并在有效时返回序列。
出于两个原因,你绝对不想使用第一个。首先,它不依赖于系统(或者甚至取决于程序,因为它在发射到发射之间可能存在很大差异)。其次,(并且可能是最重要的)它没有完成任何远离你想要的东西。