请问大家_variant_t在我的vc6里怎么不能用啊?

yydrewdrew 2007-03-15 04:32:27
我包含了头文件comutil.h
try{
Word::_ApplicationPtr pApp=NULL;
pApp.CreateInstance (__uuidof(Word::Application),NULL);
pApp->PutVisible (VARIANT_TRUE);
_variant_t str1;
str1.SetString(strPath);
Word::_DocumentPtr pDoc=pApp->GetDocuments()->Open(&str1);
_bstr_t content=pDoc->Content->Text;//
Data=(LPCTSTR)content;

TRACE("Word content: %s \n", (LPCTSTR)(_bstr_t)content);
pDoc->Close();
pApp->Quit();
}
catch(...)
{
AfxMessageBox(_T("读文件出现异常!"));
}
编译能通过,但执行到_variant_t str1;时就出现了异常.

我新建了一个工程,也在里面定义了一个_variant_t变量,包含了对应的头文件,编译有连接错误,

请问是不是没加载对应的库comsuppw.lib 或comsuppwd.lib 或者是别的问题?
...全文
427 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
yydrewdrew 2007-03-15
  • 打赏
  • 举报
回复
问题解决了
谢谢
yydrewdrew 2007-03-15
  • 打赏
  • 举报
回复

C:\\Documents and Settings\\Rui.2B9F317BD5854FF\\桌面\\新建文件夹 (5)\\粗分类结果.doc"
还是弹出
"dubug assertion failed!"
yydrewdrew 2007-03-15
  • 打赏
  • 举报
回复
我改了 
但是又执行
catch(...)
{
AfxMessageBox(_T("读文件出现异常!"));
}


而且Word打开了,但没打开任何文件,就一个word空框架
尘雨 2007-03-15
  • 打赏
  • 举报
回复
\\这是肯定的c和c++里面\这个字符是用来转义的,你要得到\字符本身,就必须\\<==>\
yydrewdrew 2007-03-15
  • 打赏
  • 举报
回复
没问题的:
strPath="C:\Documents and Settings\Rui.2B9F317BD5854FF\桌面\新建文件夹 (5)\粗分类结果.doc"
strPath是通过dlg.GetPathName()得到的;
dlg是CFileDialog;
是不是"C:"后面应该用"\\"啊?
尘雨 2007-03-15
  • 打赏
  • 举报
回复
strPath="c:\\xxxx.doc"
尘雨 2007-03-15
  • 打赏
  • 举报
回复
检查一下
str1.SetString(strPath);
是否文件确实存在
如果不存在的话
pDoc智能指针可能会有问题
yydrewdrew 2007-03-15
  • 打赏
  • 举报
回复
不过我运行程序时确实能调出word但原程序接着弹出红叉对话框"dubug assertion failed!"
怎么办?
尘雨 2007-03-15
  • 打赏
  • 举报
回复
初始化COM库在当前线程

必须先初始化,才能调用COM 的接口,智能指针,以及内存分配和实例创建函数

yydrewdrew 2007-03-15
  • 打赏
  • 举报
回复
果然没了,请问if(FAILED(::CoInitialize(NULL)))
return
这句是什么功能啊?
尘雨 2007-03-15
  • 打赏
  • 举报
回复
if(FAILED(::CoInitialize(NULL)))
return;

try{
Word::_ApplicationPtr pApp=NULL;
.....
yydrewdrew 2007-03-15
  • 打赏
  • 举报
回复
if(FAILED(::CoInitialize(NULL)))
return;
加在哪里啊?
尘雨 2007-03-15
  • 打赏
  • 举报
回复
if(FAILED(::CoInitialize(NULL)))
return;
这个也不要忘了
尘雨 2007-03-15
  • 打赏
  • 举报
回复
#pragma comment(lib, "comsupp.lib")
#pragma comment(lib, "comsuppw.lib")
#pragma comment(lib, "comsuppwd.lib")
加到stdafx.h
宝_爸 2007-03-15
  • 打赏
  • 举报
回复
Requirements
Header: comutil.h

Lib: comsuppw.lib or comsuppwd.lib (see /Zc:wchar_t (wchar_t Is Native Type) for more information)

在项目属性的连接页里面加入comsuppw.lib or comsuppwd.lib
尘雨 2007-03-15
  • 打赏
  • 举报
回复
Header: comutil.h

Lib: comsupp.lib

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧