作者chingyue (ChingYue)
看板C_and_CPP
标题VC++ 读取CpuID 该用什麽输出格式?
时间Wed Jun 7 11:27:55 2017
开发平台(Platform): (Ex: Win10, Linux, ...)
Win7(Win10)
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
VC++(VS2013 VS2017)
问题(Question):
各位前辈大家好
小弟最近在学习用C++来读取CpuID
有在GOOGLE上找到一个范例
范例网址:
http://blog.csdn.net/aoshilang2249/article/details/44958907
小弟照着范例执行的时候
出现了错误
error LNK2019: 无法解析的外部符号 _main 在函式 ___tmainCRTStartup 中被参考
查了一下发现应该是程式中没有main()
所以自己加入了
void main()
{
char str1;
printf_s("%d\n", GetCpuByCmd);
printf_s("%f\n", GetCpuByCmd);
printf_s("%c\n", GetCpuByCmd);
printf_s("%s\n", GetCpuByCmd);
printf_s("%e\n", GetCpuByCmd);
printf_s("%u\n", GetCpuByCmd);
printf_s("%o\n", GetCpuByCmd);
printf_s("%x\n", GetCpuByCmd);
printf_s("%p\n\n", GetCpuByCmd);
system("wmic CPU get ProcessorID ");
system("PAUSE");
}
加入後程式就可以执行了
但是结果跟我用
system("wmic CPU get ProcessorID ");
所显示的CpuID并不相同
输出图:
http://i.imgur.com/Xmf5YCX.jpg
想请问各位前辈
我该用哪种方式输出我的结果?
程式码(Code):(请善用置底文网页, 记得排版)
.h档:
http://codepad.org/CXZyWe42
.h档(图):
http://i.imgur.com/BhGCP7s.jpg
.cpp:
http://codepad.org/3Mgq8Anz
补充说明(Supplement):
另外小弟有试过用这种方式储存结果
string str1;
str1 = system("wmic CPU get ProcessorID ");
printf_s("%s",str1);
可是很明显的,事情不是我这种憨人想的这麽简单...
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 122.116.59.114
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1496806078.A.36B.html
※ 编辑: chingyue (122.116.59.114), 06/07/2017 11:29:27
1F:推 jerryh001: GetCpuByCmd 是函数 .h有写要传字元阵列给他 06/07 11:36
不好意思 我刚刚看了一下程式码
可是我还是不清楚要传什麽样的字元阵列给他...
能不能麻烦前辈举个例子呢? 谢谢您!
2F:→ TobyH4cker: 我直接讲明,现在没有所谓的CPU 序号 06/07 11:54
3F:→ TobyH4cker: 你可以直接放弃取CPU当作机器码了 06/07 11:55
谢谢!
能不能跟您请教一下
那如果我要判断看程式有没有被搬到其他电脑,我该抓主机内的什麽值来做判断呢?
※ 编辑: chingyue (122.116.59.114), 06/07/2017 12:13:05
4F:→ Hazukashiine: 找网卡MAC跟主机板序号 来做Hash 06/07 12:36
好的 谢谢您
我会再去GOOGLE试看看!
※ 编辑: chingyue (122.116.59.114), 06/07/2017 15:07:02
5F:推 jerryh001: 理论上作者应该会写每个参数传什麽 我猜是传空的阵列进 06/07 16:30
6F:→ jerryh001: 去 然後他会把阵列修改成CPU名字 06/07 16:30
7F:推 libertyleave: 你可以尝试 wmic CPU get ProcessorID >> cpu.txt 06/07 17:05
8F:→ libertyleave: 然後再从档案理面读取 06/07 17:06
谢谢!
我没有想到还有这种方法!!
我明天会查一下用法在尝试看看!
9F:→ libertyleave: 或者你可以参考这篇对岸文章 是读主机板的 不过原理 06/07 17:08
11F:→ libertyleave: 喔 我看了一下 code 跟网页写的是同样的东西 06/07 17:24
12F:→ libertyleave: 你需要先宣告一个 char cpuArr[128] 06/07 17:25
13F:→ libertyleave: 然後这样呼叫 GetCpuByCmd(cpuArr,128) 06/07 17:26
14F:→ libertyleave: 然後输出 cpuArr 就好 06/07 17:27
非常谢谢您!
能成功显示了!
不过後面会跟一串乱码...
输出结果图:
http://i.imgur.com/S8NA91C.jpg
我有试着修改阵列大小跟传入函数的值
可是结果都一样会出现乱码
请问我是不是有哪边需要修改的?
※ 编辑: chingyue (122.116.59.114), 06/07/2017 19:00:54
15F:→ james732: 跟乱码应该是字串最後没有结束字元 06/07 19:03
16F:推 jerryh001: 貌似他没帮你最後加\0 你宣告的时候先自己初始化成0吧 06/07 19:05
可以了!!
非常谢谢两位!
宣告改成char cpuArr[128]=""; 就可以成功执行了!
※ 编辑: chingyue (122.116.59.114), 06/07/2017 19:08:10
17F:嘘 pttuser: 没有main…………… 06/18 00:00