请教:word中插入图片的代码,标红的语句会报错,请问是怎么回事?
error C2660: 'Word::InlineShapes::AddPicture' : function does not take 1 argumentsInlineShapesPtr pInShapes; 
InlineShapePtr pInShape; 
pInShapes = sel.get_InlineShapes();
pInShape = pInShapes->AddPicture("e:\\1.JPG");

解决方案 »

  1.   

    补充:
    导入word库(标粉代码),生成msword.tlh中对AddPicture的定义(标红代码)就是4个参数,后三个为默认参数,正常我输入1个参数,应该可以编译通过;输入4个参数仍然报错:error C2660: 'Word::InlineShapes::AddPicture' : function does not take 4 arguments#import "C:\\Program Files\\Microsoft Office\\OFFICE11\\MSWORD.OLB" no_namespace   raw_interfaces_only \
    rename("FindText","_FindText")       \
    rename("Rectangle","_Rectangle")   \
    rename("ExitWindows","_ExitWindows")
    InlineShapePtr AddPicture (
            _bstr_t FileName,
            VARIANT * LinkToFile = &vtMissing,
            VARIANT * SaveWithDocument = &vtMissing,
            VARIANT * Range = &vtMissing );
      

  2.   

    补充:
    当用#import导入时,正常在Debug目录下生成msword.tlh文件,为什么在C:\temp文件夹下页生成msword.tlh文件?而且从VS2008中查找,会指到C:\temp\msword.tlh请高手指点!
      

  3.   


    _Application m_app;
    Documents m_docs;
    _Document m_doc;
    Selection m_sel;
    InlineShape m_inlineShape;
    InlineShapes m_inlineShapes; //建立WORD
    if(!m_app.CreateDispatch(_T("Word.Application")))
    {
    AfxMessageBox("Word建立失败");
    return;
    }
    m_app.SetVisible(TRUE);
    //建立doc
    m_docs=m_app.GetDocuments();
    //doc::Add有4个参数
    CComVariant Template(_T(""));//为了简单没有使用Template模版
    CComVariant NewTemplate(false),DocumentType(0),Visible;
    //打开一个文档
    m_docs.Add(&Template,&NewTemplate,&DocumentType,&Visible); //获取光标
    m_sel=m_app.GetSelection();
    m_sel.TypeText("实验日期:"+m_strTestTime+"  实验点数:"+m_strTestPointNum+"\r\n"); //添加图片
    COleVariant vTrue((short)TRUE),vFalse((short)FALSE),vOptional((long)DISP_E_PARAMNOTFOUND,VT_ERROR);
    m_doc=m_app.GetActiveDocument();
    m_sel=m_app.GetSelection();
    m_inlineShapes=m_sel.GetInlineShapes();
    CString strTmp="C:\\bitmap.bmp"; m_inlineShape=m_inlineShapes.AddPicture(strTmp,&vFalse,&vTrue,&vOptional); //释放InlineShapes,sel,docs对象
    m_inlineShape.ReleaseDispatch();
    m_inlineShapes.ReleaseDispatch();
    m_sel.ReleaseDispatch();
    m_docs.ReleaseDispatch();

    VARIANT SaveChange,OriginalFormat,RouteDocument;//定义调用QUIT时使用的参数 SaveChange.vt=VT_BOOL;//设置退出Word时保存的参数
    SaveChange.boolVal=VARIANT_FALSE;//不保存任何文档,模版及设置 ::VariantInit(&OriginalFormat);//清空变量 RouteDocument.vt=VT_EMPTY;//清空变量的另一种方法 //用QUIT退出WORD,不调用就让WORD一直存在
    //m_app.Quit(&SaveChange,&OriginalFormat,&RouteDocument); m_app.ReleaseDispatch();//释放对象指针
      

  4.   

    楼主pInShape = pInShapes->AddPicture("e:\\1.JPG"); 
    CString strTmp="e:\\1.JPG";
    pInShape = pInShapes->AddPicture(strTmp);
    这样就可以了