32位C++;到64位C++;使用VisualStudio2010 我最近想把32位C++项目转换成64位,但我还是第一次尝试。你能指出任何建议/检查清单/点时,在32位的C++转换为64位的VS(如转换32位Delphi到64位)。
微软的编译器(无论如何,其中一些)有一个标志,指出至少一些常见的问题,在这些问题中,代码可能需要修改才能作为64位代码工作 就您的32位C++;到64位C++;使用VisualStudio2010 我最近想把32位C++项目转换成64位,但我还是第一次尝试。你能指出任何建议/检查清单/点时,在32位的C++转换为64位的VS(如转换32位Delphi到64位)。,c++,64-bit,C++,64 Bit,微软的编译器(无论如何,其中一些)有一个标志,指出至少一些常见的问题,在这些问题中,代码可能需要修改才能作为64位代码工作 就您的GetVendorID\u 0函数而言,我会使用Microsoft的函数,如下所示: int GetVendorID_0(char *pVendorID, int iLen) { DWORD data[4]; _cpuid(0, data); memcpy(pVendorID, data+1, 12); return data[0]
GetVendorID\u 0
函数而言,我会使用Microsoft的函数,如下所示:
int GetVendorID_0(char *pVendorID, int iLen) {
DWORD data[4];
_cpuid(0, data);
memcpy(pVendorID, data+1, 12);
return data[0];
}
这显然不能取代内联汇编语言的所有实例。你的选择相当简单(虽然不一定容易)。一个是找到这样一个内在的工作。另一种是将汇编代码移到单独的文件中,并将其与C++中的代码链接(并学习X64调用约定)。第三种方法是简单地放弃你现在正在做的事情,用更具可移植性的代码编写最接近的等效代码。微软的编译器(无论如何,其中一些编译器)有一个标志,指出至少一些常见的问题,在这些问题中,代码可能需要修改才能像64位代码一样工作
就您的GetVendorID\u 0
函数而言,我会使用Microsoft的函数,如下所示:
int GetVendorID_0(char *pVendorID, int iLen) {
DWORD data[4];
_cpuid(0, data);
memcpy(pVendorID, data+1, 12);
return data[0];
}
这显然不能取代内联汇编语言的所有实例。你的选择相当简单(虽然不一定容易)。一个是找到这样一个内在的工作。另一种是将汇编代码移到单独的文件中,并将其与C++中的代码链接(并学习X64调用约定)。第三种方法是简单地放弃您现在正在做的事情,用更可移植的代码编写最接近的等效代码。AFAIK MS的x64编译器不支持使用内联汇编程序。AFAIK MS的x64编译器不支持使用内联汇编程序。