这些有什么区别? & 我应该使用什么?
What's The Difference Between These? & What should I use?
我想制作一个只允许您在一台计算机上使用我的程序的系统,有点像许可证系统。
例如:程序检查系统的卷信息,如果与允许它的卷匹配 运行,它 运行s.
我的两个问题是,
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");
}
他们每个return一个不同的值,(第一个:xxxxxxxx数字和字母,第二个:xxxxxxxxxx只有数字)那么有什么区别呢?
我的第二个问题是,我应该使用其中哪一个来达到我的目的?
第一个程序返回一个指向函数 GetVolumeInformation 的指针,这与第二个程序有很大不同,第二个程序在有效时获取卷信息和 returns 序列号。
您绝对不想使用第一个,原因有二。首先,它不依赖于系统(甚至不依赖于程序,因为它在每次启动时可能会有很大差异)。其次,(可能是最重要的)它并没有完成任何与你想要的相差甚远的事情。
我想制作一个只允许您在一台计算机上使用我的程序的系统,有点像许可证系统。 例如:程序检查系统的卷信息,如果与允许它的卷匹配 运行,它 运行s.
我的两个问题是, 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");
}
他们每个return一个不同的值,(第一个:xxxxxxxx数字和字母,第二个:xxxxxxxxxx只有数字)那么有什么区别呢? 我的第二个问题是,我应该使用其中哪一个来达到我的目的?
第一个程序返回一个指向函数 GetVolumeInformation 的指针,这与第二个程序有很大不同,第二个程序在有效时获取卷信息和 returns 序列号。
您绝对不想使用第一个,原因有二。首先,它不依赖于系统(甚至不依赖于程序,因为它在每次启动时可能会有很大差异)。其次,(可能是最重要的)它并没有完成任何与你想要的相差甚远的事情。