用vs2013打开word文档

1.新建MFC工程如图选择类向导

2.选择需要导入的接口_Application、Documents、_Document

3.导入后将生成的注释掉
#import "C:\\Program Files (x86)\\Microsoft Office\\Office16\\MSWORD.OLB" no_namespace

或者加几句话(展开看,需要在同一行)

#import "C:\\Program Files (x86)\\Microsoft Office\\Office16\\MSWORD.OLB" no_namespace  raw_interfaces_only \
	rename("FindText","_FindText") \
	rename("Rectangle","_Rectangle") \
	rename("ExitWindows","_ExitWindows")
4.添加导入的头文件
#include "CDocuments.h"
#include "CDocument0.h"
#include "CApplication.h"
5. 创建对话框用于显示,并写下交互
void CMFCApplication1Dlg::OnBnClickedButton1()
{
	CFileDialog dlg(TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
		L"All Files(*.docx)|*.docx||", AfxGetMainWnd());	//构造文件打开对话框
	CString strPath;					//声明变量
	if (dlg.DoModal() == IDOK)						//判断是否按下"打开"按钮
	{
		strPath = dlg.GetPathName();				//获得文件路径
		m_Path.SetWindowText(strPath);		//显示文件路径
		//Word应用程序 
		CApplication app ;
		CDocuments docs;
		CDocument0 doc;
		//初始化连接
		app.CreateDispatch(_T("word.Application"));
		CComVariant a(strPath), b(false), c(0), d(true);
		docs=app.get_Documents();
		doc.AttachDispatch(docs.Add(&a, &b, &c, &d));

		//显示
		app.put_Visible(TRUE);
		//释放环境
		doc.ReleaseDispatch();
		docs.ReleaseDispatch();
		app.ReleaseDispatch();
	}
}
 6.实现效果

(word也会打开,这里不做展示)

7.可能会遇到的问题

1)调试信息

 

 

MFC的使用,有三种设置: 

 1.使用标准Windows库

 2.在静态库中使用MFC:是将DLL中的相关代码写进EXE文件中,文件较大,但是可以在没有相关DLL的机器上运行;

 3.在共享DLL中使用MFC:指的是打包时一些MFC的DLL的内容没有被包含在EXE文件中,所以EXE文件较小,但是运行时要求系统中要有相关的DLL文件;

多线程调试

/MD:在dll中使用多线程,创建动态链接库的release版本,需要选择。

/MT: 在exe里使用多线程,创建exe的release版本,需要选择。

/MTd:同/MT一样,不过是在Debug版本中使用。

/MDL:同/MD一样,不过是在Debug版本中使用。

如果是Debug的“在静态库中使用MFC”,不要使用MDd,使用MTd;

如果是Debug的“在共享DLL中使用MFC”,注意不要使用MTd,使用MDd;

如果是Release版本“在静态库中使用MFC”,不要使用MD,使用MT;

如果是Release版本的“在共享DLL中使用MFC”,不要使用MT,使用MD。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值