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点吧。
...全文
1150 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
tomcatsg 2015-12-03
  • 打赏
  • 举报
回复
To work around this problem, use the following pragma directive to include the Atlcomcli.h file.
tiangaodihou_ 2015-04-24
  • 打赏
  • 举报
回复
请问这个 --workaround-- #pragma push_macro("ATLSTATIC_ASSERT") #undef ATLSTATIC_ASSERT #include <atlcomcli.h> #pragma pop_macro("ATLSTATIC_ASSERT") --workaround— 加到哪里?
韩昀翀 2015-04-08
  • 打赏
  • 举报
回复
楼主,请问你那里还有这个补丁吗?现在这个下载链接失效了,能给发一个补丁吗?拜托。hanwei1838@qq.com
iperf 2014-07-07
  • 打赏
  • 举报
回复
找到一个解决办法了,就是下载一个补丁:装上就OK了。 http://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=33885

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧