csExWB 中 的ComUtilities 的vs 2012 编译器问题解决

2013年5月4日

以下文章摘自 http://www.canaware.com/default.aspx?g=posts&t=722

这个文章也是转载别人的,不过别人的已经访问不到了,幸运的是这个给出了这个问题的解决方案。

Compilation error in VS 2008

Compile solution ComUtilities using Visual Studio 2008. Compilation will fail with:

1>.\ComUtilities.idl(46) : error MIDL2003 : redefinition : IUri 1>.\ComUtilities.idl(53) : error MIDL2003 : redefinition : Uri_PROPERTY_ABSOLUTE_URI 1>.\ComUtilities.idl(54) : error MIDL2003 : redefinition : Uri_PROPERTY_STRING_START 1>.\ComUtilities.idl(55) : error MIDL2003 : redefinition : Uri_PROPERTY_AUTHORITY ...

I found a solution in
http://groups.google.com/group/csexwb/browse_thread/thread/4c6106529769a9f8?pli=1

According to this I changed #define _WIN32_IE 0x0600 to #define _WIN32_IE 0x0700 in stdafx.h and commented lines 38-259 in ComUtilities.idl and it worked.

大意是:stdafx.h 的 #define _WIN32_IE 0x0600 改为 #define _WIN32_IE 0x0700

ComUtilities.idl 中的38-259行注释掉。

我的改法是:将 stdafx.h 的 #define _WIN32_IE 0x0600 改为 #define _WIN32_IE 0x0800,这个改法未经证实,只是我这可以用,那个0700我这也可以用。

还有,调试这个程序的时候,会出来一个错误,什么无法从com上下文转换为什么,状态已持续60秒等的,解决方法是:调试 → 异常,managrd debugging assistants中取消勾选 ContextSwitchDeadlock 的 throw (中文:引发)项就OK了。这对需要长时间执行的程序报出的错误都可解决。

 

证实,可以处理,按此方法!

声明: 本文采用 BY-NC-SA 协议进行授权. 转载请注明转自: csExWB 中 的ComUtilities 的vs 2012 编译器问题解决
本文的评论功能被关闭了.