这些有什么区别? & 我应该使用什么?

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 序列号。

您绝对不想使用第一个,原因有二。首先,它不依赖于系统(甚至不依赖于程序,因为它在每次启动时可能会有很大差异)。其次,(可能是最重要的)它并没有完成任何与你想要的相差甚远的事情。