VS05使用Word自动化的问题解决方案

本文详细阐述了在使用MFC和OLE库时遇到的冲突问题,并提供了解决方案,包括如何修改代码导入语句以避免名称冲突,以及在不同情况下正确使用续行符。同时,文章还提供了生成正确代码的具体步骤。

Compiling...

1>DlgProxy.cpp

1>g:/my document/visual studio 2005/projects/word/word/capplication.h(3) : warning C4278: 'ExitWindows': identifier in type library 'C://Program Files//Microsoft Office//OFFICE11//MSWORD.OLB' is already a macro; use the 'rename' qualifier

1>g:/my document/visual studio 2005/projects/word/word/capplication.h(3) : warning C4278: 'FindText': identifier in type library 'C://Program Files//Microsoft Office//OFFICE11//MSWORD.OLB' is already a macro; use the 'rename' qualifier

1>g:/my document/visual studio 2005/projects/word/word/capplication.h(3) : warning C4278: 'FindText': identifier in type library 'C://Program Files//Microsoft Office//OFFICE11//MSWORD.OLB' is already a macro; use the 'rename' qualifier

1>g:/my document/visual studio 2005/projects/word/word/capplication.h(3) : warning C4278: 'FindText': identifier in type library 'C://Program Files//Microsoft Office//OFFICE11//MSWORD.OLB' is already a macro; use the 'rename' qualifier

1>g:/my document/visual studio 2005/projects/word/word/capplication.h(3) : warning C4278: 'FindText': identifier in type library 'C://Program Files//Microsoft Office//OFFICE11//MSWORD.OLB' is already a macro; use the 'rename' qualifier

1>g:/my document/visual studio 2005/projects/word/word/debug/msword.tlh(1073) : error C2786: 'BOOL (__stdcall *)(HDC,int,int,int,int)' : invalid operand for __uuidof

1>g:/my document/visual studio 2005/projects/word/word/debug/msword.tlh(1073) : error C2923: '_com_IIID' : 'Rectangle' is not a valid template type argument for parameter '_Interface'

1>        c:/program files/microsoft visual studio 8/vc/platformsdk/include/wingdi.h(3514) : see declaration of 'Rectangle'

1>g:/my document/visual studio 2005/projects/word/word/debug/msword.tlh(1073) : error C3203: '_com_IIID' : unspecialized class template can't be used as a template argument for template parameter '_IIID', expected a real type

1>g:/my document/visual studio 2005/projects/word/word/debug/msword.tlh(7113) : warning C4003: not enough actual parameters for macro 'ExitWindows'

1>g:/my document/visual studio 2005/projects/word/word/debug/msword.tlh(7113) : error C2059: syntax error : 'constant'

1>g:/my document/visual studio 2005/projects/word/word/debug/msword.tlh(13448) : error C2146: syntax error : missing ';' before identifier 'Fonts'

1>g:/my document/visual studio 2005/projects/word/word/debug/msword.tlh(13448) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int

1>g:/my document/visual studio 2005/projects/word/word/debug/msword.tlh(13448) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int

1>g:/my document/visual studio 2005/projects/word/word/debug/msword.tlh(13503) : error C2146: syntax error : missing ';' before identifier 'GetFonts'

1>Generating Code...

1>Build log was saved at "file://g:/My Document/Visual Studio 2005/Projects/word/word/Debug/BuildLog.htm"

1>word - 726 error(s), 107 warning(s)

========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Kao,726 个错误 . 原因真正的能吓死人 .

MFC 自己生成如下代码 :

#import "C://Program Files//Microsoft Office//OFFICE11//MSWORD.OLB" no_namespace

它导致和原来的名字冲突.

所以把它改正成:

#import "C://Program Files//Microsoft Office//OFFICE11//MSWORD.OLB" no_namespace     raw_interfaces_only /

    rename("FindText","_FindText")        /

    rename("Rectangle","_Rectangle")   /

    rename("ExitWindows","_ExitWindows")

绿色部分是要加 的部分 . 注意 : 如果 Rew_interfaces_onlyMFC 自己生成的代码不在同一行时 , 要在 MFC 自 动生成行最后加 ’/’ 表示续行 . 在一行则不用加 .

 

原帖:http://hi.baidu.com/%B8%F5%D0%C4/blog/item/d23293826af01f97f703a67b.html

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值