【问题标题】:What's The Difference Between These? & What should I use?这些有什么区别? & 我应该用什么?
【发布时间】:2015-05-16 06:25:47
【问题描述】:

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

我的两个问题是, 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 only numbers)那么有什么区别? 我的第二个问题是,我应该使用其中哪一个来达到我的目的?

【问题讨论】:

  • 你的第一次尝试打印出一个函数地址...
  • 您的标题是非描述性的。把它改成合理的东西。

标签: c++ system volume


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2020-06-28
    • 1970-01-01
    • 2013-01-16
    • 1970-01-01
    • 2021-08-11
    • 2018-08-25
    • 2012-09-27
    • 2011-11-22
    相关资源
    最近更新 更多