C1189 Winver 0x501 fatal error C1189: #error: MFC does not support WINVER less than 0x0501.
方式一&方式二
注释掉后,vs会自动从WinSDKVer.h头文件获取
_WIN32_WINNT not defined. Defaulting to _WIN32_WINNT_MAXVER (see WinSDKVer.h)
C1189 RTCc fatal error C1189: #error: /RTCc rejects conformant code
方式一
增加预处理定义 _ALLOW_RTCc_IN_STL
方式二
define _ALLOW_RTCc_IN_STL
方式三
修改代码生成中的较小类型检查/RTCc 为否
C2220 警告被视为错误 error C2220: 警告被视为错误 - 没有生成“object”文件
方式一
修改警告的错误,保证不出现这个警告 ,例如这个int类型改为UINT类型
方式二
修改属性页,修改c/c++->常规->警告视为错误 改为否
方式三
禁用出现的这个警告编号 (disable:4838),这样就不会出现警告提示
LNK2001 无法解析的外部符号"void *_cdecl acHeapAlloc(void *,unsigned _int64)" (?acHeapAlloc@@YAPEAXPEAX_K@Z)
解答 by gzxl 缺少库
#if _MSC_VER >= 1920 // ObjectARXSDK 2021以上
#pragma comment(lib, "AcPal.lib")
#pragma comment(lib, "acgeoment.lib")
#endif
LNK111 模块计算机类型"x64"与目标计算机类型“X86"冲突 或 模块计算机类型"X86"与目标计算机类型“x64"冲突
解答
“模块计算机类型”一般指的是调用已经编译好的lib库文件的是x64, 而 “目标计算机类型“X86” 是指的当前编译设置的编译平台是win32(x86),当引用的lib文件和当前平台不匹配的时候,
就会提示这个问题。设置好正确的lib即可。在arx中一般是库目录的问题,确保库目录正确。