它们之间的区别是什么? &安培;我该怎么用?

时间:2015-05-16 06:25:47

标签: c++ system volume

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

我的两个问题是, 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只有数字)那么差异是什么? 我的第二个问题是,我应该将这些中的哪一个用于我的目的?

1 个答案:

答案 0 :(得分:0)

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

出于两个原因,你绝对不想使用第一个。首先,它不依赖于系统(或者甚至取决于程序,因为它在发射到发射之间可能存在很大差异)。其次,(并且可能是最重要的)它没有完成任何远离你想要的东西。