这两者之间有什么区别?&我应该使用什么?

What's The Difference Between These? & What should I use?

本文关键字:什么 我应该 区别 两者之间      更新时间:2023-10-16

我想做一个系统,只允许你在一台电脑上使用我的程序,有点像许可证系统。例如:程序检查系统的卷信息,如果与允许它运行的卷匹配,它就运行。

我的两个问题是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只有数字),那么区别是什么?我的第二个问题是,我应该用哪一个?

第一个程序返回一个指向GetVolumeInformation函数的指针,这与第二个程序有很大的不同,第二个程序获取卷信息并在有效时返回序列号。

出于两个原因,您肯定不想使用第一个。首先,它不依赖于系统(甚至不依赖于程序,因为它在每次启动时可能会有很大的不同)。其次,(可能也是最重要的)它没有完成任何您想要它完成的事情。