首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DWORD不兼容

DWORD不兼容
EN

Stack Overflow用户
提问于 2013-01-02 14:56:00
回答 2查看 700关注 0票数 0

我正在研究vc++中的硬件特性。

我正在努力获得这个siSysInfo.dwOemId,但是dword is incompatible错误阻止了我

我甚至尝试过strcat(text,(char*)siSysInfo.dwOemId),但是没有用。

以下是我的代码

代码语言:javascript
复制
SYSTEM_INFO siSysInfo;

GetSystemInfo(&siSysInfo);

char parent[1000] = {""};
char text[700] = {""};
char str[700] = {""};


strcat(text, "<b><font color=\"yellow\"> ");

strcat(text,(char*)siSysInfo.dwOemId);

strcat(text, str);
strcat(text, "</font></b>");

AddLOG_message(text, 0, 0);

#pragma MESSAGE("TODO: testing")

在控制台应用程序中,它作为printf工作(“OEM ID:%u\n",siSysInfo.dwOemId);

但在正常应用程序中- strcat(text,(char*)siSysInfo.dwOemId);不起作用。

EN

回答 2

Stack Overflow用户

发布于 2013-01-02 14:58:51

是的,word是可以通过系统总线AFAIK传递的数据位的数量的度量。因此,它不能兼容,因为对于16位平台,它将是16位,而对于64位平台,它将是64位。

关于那个strcat(text,(char*)siSysInfo.dwOemId),我非常确定dwOemId没有结束零,因此需要使用strncat(text, (char*)siSysInfo.dwOemId, sizeof(DWORD))或类似的东西。

看起来这不是一个字符串。我怀疑你已经关注了this sample,但你应该把注意力转向printf(" OEM ID: %u\n", siSysInfo.dwOemId)这一行。如您所见,它们使用%u格式化(unsigned int)。

根据MSDN的说法

dwOemId

为兼容而保留的过时成员。

应用程序应该使用联合的wProcessorArchitecture分支。

因此,这行代码可能如下所示:

代码语言:javascript
复制
switch(siSysInfo.wProcessorArchitecture)
{
case PROCESSOR_ARCHITECTURE_AMD64: strcat(text, "x64"); break;
case PROCESSOR_ARCHITECTURE_ARM: strcat(text, "ARM"); break;
case PROCESSOR_ARCHITECTURE_IA64: strcat(text, "ia64"); break;
case PROCESSOR_ARCHITECTURE_INTEL: strcat(text, "x86"); break;
case PROCESSOR_ARCHITECTURE_UNKNOWN: strcat(text, "unknown"); break;
default:
    /* code should be updated to include updates 
     * in wProcessorArchitecture enumeration */
    strcat(text, "unidentified"); break;
}
票数 1
EN

Stack Overflow用户

发布于 2013-01-02 15:36:44

解决方案:

SYSTEM_INFO siSysInfo;

GetSystemInfo(&siSysInfo);

使用无符号字符而不是字符。\n

请遵循下面的示例。

unsigned char text700 = {""};

strcat(文本,(char*)siSysInfo.dwOemId);

请参阅以下链接:

http://msdn.microsoft.com/en-us/library/windows/desktop/ms724423(v=vs.85).aspx

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14118041

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档