win32静态库使用mfc中msword类型库
来源:互联网 发布:捡尸神器淘宝叫什么 编辑:程序博客网 时间:2024/06/18 16:18
最近有个项目当中需要读取word文件,但是工程项目并非mfc工程,于是就在网上各种搜:win32使用mfc类型库,这样的例子网上有很多,但是拿来的时候总是出各种问题,经过重重百度+谷歌,现在终于实现了win32的静态库下调用word的功能了,现就详细处理过程记录如下。
首先,word使用的头文件主要有4个CApplication.h、CDocument0.h、CDocuments.h、CRange.h,这四个头文件创建步骤如下:
1、新建任一mfc应用程序,此处创建的是一个mfc dll,资源管理器视图如下
2、项目—添加类—TypeLib中MFC类
确认添加后出现如下界面,并在可用的类型库中选择word
3、在接口列表中可看到一系列word的接口,但我们现在只要用到四个:_Application、_Document、Documents、Range,选择这四个接口到生成的类列表中
单击完成生成上述的四个头文件
至此完成了头文件的导出工作,下面新建一个win32的静态库工程(不要预编译头),将导出的四个word头文件和targetver.h一起拷贝到win32工程目录下,将这几个头文件添加到工程下
以工程名为名称新建一个头文件及源文件。
下面就是真正重点了
1、CApplication.h头文件中原始导入库语句为
#import "C:\\Program Files\\Microsoft Office\\OFFICE11\\MSWORD.OLB"将其替换为
#import "C:\\Program Files\\Microsoft Office\\OFFICE11\\MSWORD.OLB" rename_namespace("Word"),raw_interfaces_only, named_guids ,exclude("Pages")\rename("ExitWindows","owExitWindows") \rename("FindText","owFindText")using namespace Word;对头文件CDocument0.h、CDocuments.h、CRange.h应用同样操作。
2、头文件TQRECIO.h中添加代码
#pragma once#ifndef VC_EXTRALEAN#define VC_EXTRALEAN // 从 Windows 头中排除极少使用的资料#endif#include "targetver.h"#include <afx.h>#include <afxwin.h> // MFC 核心组件和标准组件#include <afxext.h>// MFC 扩展#include <afxdisp.h>// MFC 自动化类#include "CApplication.h"#include "CDocument0.h"#include "CDocuments.h"#include "CRange.h"
3、TQRECIO.cpp包含头文件TQRECIO.h
4、项目配置
- 项目——配置属性——常规——MFC使用,设置为:在静态库中使用MFC
- 项目——配置属性——C/C++——代码生成,不能为/MD,此处我设置为/MTd
至此,所有配置完成,编译通过
注:使用过程中调用工程出现了一些链接错误,在链接器命令行中加入/force可强制编译通过,实现正常调用。
0 0
- win32静态库使用mfc中msword类型库
- 在Win32中使用MFC库
- 在静态库中使用MFC
- 在静态库中使用MFC
- 在WIN32 DLL中使用MFC库遇到的问题
- VC的Win32控制台程序中使用MFC库文件
- MFC程序(在静态库中使用MFC)问题
- MFC VS2013 在静态库中使用MFC 和在共享DLL中使用MFC 切换
- win32中使用MFC类库
- Win32 DLL中使用MFC
- opencv中在静态库中使用MFC的配置
- MFC的使用——在共享DLL中使用MFC、在静态库中使用
- 使用pthread-win32工程编译静态库
- MFC静态库的使用
- 在静态库中使用MFC 、 在共享dll中使用mfc 两者间的转换
- 在共享DLL中使用MFC和在静态库中使用MFC有什么区别
- 在共享DLL中使用MFC 和在静态库中使用MFC
- 在共享DLL中使用MFC 和在静态库中使用MFC区别
- MyBatis学习 之 一、MyBatis简介与配置MyBatis+Spring+MySql
- Eclipse 中 字符无效 和 The byte order mark (BOM) is UTF-8解决方法
- 一致性Hash算法
- 百度新闻源收录的价值判断
- MySQL语句
- win32静态库使用mfc中msword类型库
- svn管理cocos2dx代码注意事项
- linux下有趣命令集合
- [ISSUE]NETDEV WATCHDOG: eth0 (enc424j600): transmit queue 0 timed out
- 全程软件测试之测试需求分析与计划(2)
- Android开发笔记:设置android:gravity 和 android:layout_Gravity
- JS日期格式化
- jquery几种用来检查checkbox是否选中的方法
- 求二进制中1的个数