VS2010下编译DSOframer

DSOframer这个古董在新时代依然有用。DSOframer最后版本为2.3,还是用VC6编译的。用VS2010编译,会产生一大堆错误。现在介绍下32位windows7,VS2010下编译DSOframer2.3的方法:

1. dsoframedemo\ms_dsoframer\XMLHttpClient.h(42):error C4430: missing type specifier - int assumed. Note: C++ does not supportdefault-int

打开:项目----项目属性----配置属性----C/C++----命令行,在附加选项那里添加/wd4430这个选项。


2.error C1083: 无法打开类型库文件:“C:\Program Files\Microsoft Office\Office12\MSWORD.olb”: No such file or directory

打开DSOframer项目文件夹下的msoffice.h,把里面引用的office文件路径改为符合你系统实际情况的路径。


3.error C2872: “......”: 不明确的符号

把msoffice.h 中相关using namespace放到#import之后,比如:

#ifndef DSO_MSOFFICE_
#define DSO_MSOFFICE_
#import "C:\Program Files\Common Files\DESIGNER\MSADDNDR.DLL" raw_interfaces_only, raw_native_types, no_namespace, named_guids 
#import "C:\Program Files\Common Files\Microsoft Shared\OFFICE14\mso.dll" rename_namespace("Office")
#import "C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\VBE6EXT.olb" rename_namespace("VBE6")
#import "C:\Program Files\Microsoft Office\Office14\MSWORD.olb" rename("ExitWindows","ExitWindowsEx"),rename_namespace("MSWord")
#import "C:\Program Files\Microsoft Office\Office14\EXCEL.exe" rename("RGB","RGBEx"),rename("DialogBox","DialogBoxEx"),rename_namespace("MSExcel")
#import "C:\Program Files\Microsoft Office\Office14\MSPPT.OLB" named_guids,rename_namespace("MSPPT")
using namespace MSPPT;
using namespace MSExcel;
using namespace MSWord;
using namespace VBE6;
using namespace Office;
#ifdef SUPPORT_WPS
#import "c:\Program Files\Kingsoft\WPS Office 2005 Professional\office6\kso10.dll" rename_namespace("Wps")
using namespace Wps;
#import "c:\Program Files\Kingsoft\WPS Office 2005 Professional\office6\wpscore.dll" rename_namespace("Wps")
using namespace Wps;
#endif
#endif

4.error C2143: 语法错误 ......dsoframer.h

在dsoframer.h中加入头文件#include <Mshtmlc.h>注意顺序,要放到msoffice.h之前


5. 错误:LINK : fatal error LNK1104: cannot open file 'libc.lib'
在Project-->Setting-->Linker-->Command Line-->Additionaloptions中加入:  
/Nodefaultlib:libc  /Nodefaultlib:libcp


6...\Microsoft VisualStudio 10.0\VC\atlmfc\include\atlbase.herror C2065: 'CLSID_StdGlobalInterfaceTable': undeclared identifier

atlbase.h    加上头文件 #include <CGuid.h>,比如:

#pragma warning(disable: 4355) 

#include <CGuid.h>


7.  IID GUID_NULL未定义错误

在..\Program Files\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlcomcli.h 添加extern const IID GUID_NULL; 比如:

#ifndef __ATLCOMCLI_H__
#define __ATLCOMCLI_H__
extern const IID GUID_NULL;
#pragma once


8.error MSB3073: 命令“regsvr32 /s /c ......:VCEnd”已退出,代码为 3

项目属性-配置属性-自定义生成步骤 ,修改“输出”项为“从父级或项目默认属性继承”即可。


参考文章:http://blog.csdn.net/autopine1/article/details/49359785

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值