首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

使用C,如何给DOC文件里加入图片

2012-08-08 
使用C,怎么给DOC文件里加入图片比如,是使用fopen建立了文件,然后往文件里输入图片[解决办法]1.在VC中新建

使用C,怎么给DOC文件里加入图片
比如,是使用fopen建立了文件,然后往文件里输入图片

[解决办法]
1.在VC中新建一控制台程序,选支持MFC(当然,你也可以不选择支持MFC的,不过会很麻烦)
2.按CTRL+W调出MFC ClassWizard,Add Class->From a type library,选择你的word的类型库
(例如我的是word2003,安装在e盘,我的路径是"e:\edittools\microsoft office\office11\msword.olb"),
选择完毕后,在弹出的窗口中选择要让classwizard生成的包装类,在本例中要用到
_Application,
Documents,
_Document,
Range
这四个类,选中他们后按OK
3.进入你的main函数所在的cpp文件,加入头文件引用
#include "msword.h" //引用刚才classwizard生成的idispatch包装类
4.加入代码

C/C++ code
// console_word.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include "console_word.h"#include "msword.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endif/////////////////////////////////////////////////////////////////////////////// The one and only application objectCWinApp theApp;int _tmain(int argc, TCHAR* argv[], TCHAR* envp[]){    int nRetCode = 0;    // initialize MFC and print and error on failure    if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))    {        // TODO: change error code to suit your needs        printf(_T("Fatal Error: MFC initialization failed!\n"));        nRetCode = 1;    }    else    {        // TODO: code your application's behavior here.        if  (CoInitialize(NULL)  !=  S_OK)        {            AfxMessageBox("初始化COM支持库失败!");            return  -1;        }        _Application  wordApp;        Documents     docs;        _Document     doc;        Range         aRange;        COleVariant   vTrue((short)TRUE), vFalse((short)FALSE), vOpt((long)DISP_E_PARAMNOTFOUND, VT_ERROR);        CString       txt;        wordApp.CreateDispatch("Word.Application",NULL);        wordApp.SetVisible(FALSE);            docs=wordApp.GetDocuments();                doc=docs.Open(COleVariant("c:\\new\\测试.doc"),vFalse,vTrue,vFalse,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt);                    aRange=doc.Range(vOpt,vOpt);                        txt=aRange.GetText();                        AfxMessageBox(txt);//这里GetText得到的就是word文件的纯文本了,你可以将其写到txt文件中                        printf("[%s]\n",txt.GetBuffer(txt.GetLength()));//里面的换行不是\r\n而是\r,所以需要输出重定向到文本文件看结果。                    aRange.ReleaseDispatch();                doc.Close(vOpt,vOpt,vOpt);                doc.ReleaseDispatch();            docs.ReleaseDispatch();        wordApp.Quit(vOpt,vOpt,vOpt);        wordApp.ReleaseDispatch();        CoUninitialize();    }    return nRetCode;} 

热点排行