vs2005操作WORD的问题
我用vs2005新建了一个基于MFC的应用程序,然后依次“添加类”,选择“TypeLib中的MFC类”,从文件中添加“MSWORD.OLB”,然后将“_Application”,“_Document”,“Documents”,“Selection”添加了进去,添加完毕之后自动生成了CApplication,CDocument0,CDocuments,CSelection类。
现在的问题是我不管在哪里申明这几个类中的一个实例就会报错,比方CApplication app;编译就会提示CApplication为申明的标识符,如果我include "CAppllication.h"的话,编译就会出一大堆错误,如下:
d:\work\vss\code\autoword\autoword\debug\msword.tlh(1073) : error C2786: “BOOL (__stdcall *)(HDC,int,int,int,int)”: __uuidof 的操作数无效
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(1073) : error C2923: “_com_IIID”:“Rectangle”不是参数“_Interface”的有效 模板 类型变量
1> c:\program files\microsoft visual studio 8\vc\platformsdk\include\wingdi.h(3514) : 参见“Rectangle”的声明
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(1073) : error C3203: “_com_IIID”: 未专用化的类 模板 不能用作 模板 变量,该变量属于 模板 参数“_IIID”,应为 real 类型
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(7113) : warning C4003: “ExitWindows”宏的实参不足
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(7113) : error C2059: 语法错误 : “常量”
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(13448) : error C2146: 语法错误 : 缺少“;”(在标识符“Fonts”的前面)
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(13448) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(13448) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(13503) : error C2146: 语法错误 : 缺少“;”(在标识符“GetFonts”的前面)
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(13503) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(13503) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(18889) : warning C4183: “GetAssistant”: 缺少返回类型;假定为返回“int”的成员函数
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(18934) : error C2146: 语法错误 : 缺少“;”(在标识符“GetCommandBars”的前面)
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(18934) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(18934) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(18934) : warning C4183: “GetCommandBars”: 缺少返回类型;假定为返回“int”的成员函数
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(18938) : error C2146: 语法错误 : 缺少“;”(在标识符“GetVBE”的前面)1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(21133) : error C2146: 语法错误 : 缺少“;”(在标识符“GetScripts”的前面)
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(21133) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(21133) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(21133) : warning C4183: “GetScripts”: 缺少返回类型;假定为返回“int”的成员函数
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(21144) : error C2146: 语法错误 : 缺少“;”(在标识符“GetHTMLProject”的前面)
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(21144) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(36792) : warning C4183: “GetScript”: 缺少返回类型;假定为返回“int”的成员函数
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(39248) : warning C4003: “ExitWindows”宏的实参不足
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(39248) : error C2497: “Tasks::ExitWindowsEx”: “implementation_key”只能应用于函数声明
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(39248) : error C2350: “Tasks::ExitWindowsEx”不是静态成员
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(39248) : error C2078: 初始值设定项太多
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(39248) : error C2440: “初始化”: 无法从“unsigned int”转换为“HRESULT (void)”
1> 没有转换为函数类型,但有转换为函数的引用或指针
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(40317) : error C2143: 语法错误 : 缺少“;”(在“DefaultWebOptions::GetFonts”的前面)
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(40317) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(40317) : error C2497: “WebPageFontsPtr”: “implementation_key”只能应用于函数声明
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(40317) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(41249) : error C2143: 语法错误 : 缺少“;”(在“_Application::GetAssistant”的前面)
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(41249) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(41249) : error C2497: “AssistantPtr”: “implementation_key”只能应用于函数声明
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(41249) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(41285) : error C2143: 语法错误 : 缺少“;”(在“_Application::GetCommandBars”的前面)
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(41285) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(41285) : error C2497: “_CommandBarsPtr”: “implementation_key”只能应用于函数声明
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(41285) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(41287) : error C2143: 语法错误 : 缺少“;”(在“_Application::GetVBE”的前面)
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(41287) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(41287) : error C2497: “VBEPtr”: “implementation_key”只能应用于函数声明
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(41287) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(41332) : error C2143: 语法错误 : 缺少“;”(在“_Application::GetFileSearch”的前面)
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(41332) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(41332) : error C2497: “FileSearchPtr”: “implementation_key”只能应用于函数声明
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(41332) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(41409) : error C2143: 语法错误 : 缺少“;”(在“_Application::GetCOMAddIns”的前面)
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(41409) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(41409) : error C2497: “COMAddInsPtr”: “implementation_key”只能应用于函数声明
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(41409) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(41412) : error C2143: 语法错误 : 缺少“;”(在“_Application::GetLanguageSettings”的前面)
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(41412) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(41412) : error C2497: “LanguageSettingsPtr”: “implementation_key”只能应用于函数声明
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(41412) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(41414) : error C2143: 语法错误 : 缺少“;”(在“_Application::GetAnswerWizard”的前面)
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(41414) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(41414) : error C2497: “AnswerWizardPtr”: “implementation_key”只能应用于函数声明
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(41414) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(41422) : error C2143: 语法错误 : 缺少“;”(在“_Application::GetFileDialog”的前面)
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(41422) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(41422) : error C2497: “FileDialogPtr”: “implementation_key”只能应用于函数声明
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(41422) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(41427) : error C2143: 语法错误 : 缺少“;”(在“_Application::GetNewDocument”的前面)
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(41427) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(41427) : error C2497: “NewFilePtr”: “implementation_key”只能应用于函数声明
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(41427) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(41460) : error C2143: 语法错误 : 缺少“;”(在“_Global::GetAssistant”的前面)
1>d:\work\vss\code\autoword\autoword\debug\msword.tlh(41460) : fatal error C1003: 错误计数超过 100;正在停止编译
1>生成日志保存在“file://d:\work\VSS\code\AutoWord\AutoWord\Debug\BuildLog.htm”
1>AutoWord - 242 个错误,34 个警告
请问是什么原因?如果我用VC6.0来做相同的操作,就不会有问题。
[解决办法]
http://www.cnblogs.com/clever101/archive/2010/04/03/1703594.html