error C2338: CVarTypeInfo< char > cannot be compiled with /J or _CHAR_UNSIGNED f
iperf 2014-07-04 10:49:31 大家好,
我拿到一个VS的工程,用VS2010 编译 时提示:
atlcomcli.h(1756): error C2338: CVarTypeInfo< char > cannot be compiled with /J or _CHAR_UNSIGNED flag enabled
atlcomcli.h(1778): error C2338: CVarTypeInfo< char* > cannot be compiled with /J or _CHAR_UNSIGNED flag enabled
谷歌也搜了一些信息,还是没解决,就发贴请教大家,看有没有遇到这问题的。
下面是搜的一些信息:
默认情况下,Microsoft C 编译器或 Microsoft c + + 编译器 (cl.exe) 设置签名 char数据类型char类型。您可以使用将char类型设置为无符号的字符型 /J编译器开关。但是,编译器/J开关是使用活动模板库 (ATL) 的应用程序和 Microsoft 基础类 (MFC) 应用程序不兼容。如果添加/J命令行开关,则编译 MFC 或 ATL 应用程序时,您可能无法看到任何编译器错误或警告。但是,在运行时可能会出现意外的副作用,如数据丢失。
也有让加这几句的:
--workaround--
#pragma push_macro("ATLSTATIC_ASSERT")
#undef ATLSTATIC_ASSERT
#include <atlcomcli.h>
#pragma pop_macro("ATLSTATIC_ASSERT")
--workaround—
搜的信息很少,基本上可参考的就这2点吧。