没天理,我快急死拉
LPUNKNOWN punk;
CLSID clsid;
::CLSIDFromProgID(L"Excel.AppLication",&clsid);
if (::GetActiveObject(clsid,NULL,&punk) == S_OK)
AfxMessageBox ("ok");
PUNK总得不到正确的值,为什么我的程序那里有问题呀
_Application AppExcel;
_Worksheet worksheet;
Worksheets worksheets;
Range range;
Workbooks workbooks;
if(!AppExcel.CreateDispatch("Excel.Applicatio))
{
MessageBox"Wrong!","Error",MB_OK|MB_ICONSTOP);
// return FALSE;
}
else
{
AppExcel.SetVisible(TRUE);
AfxMessageBox ("Excel is Running!");
}
为什么CreateDispatch总不成功,
问题点数:100、回复次数:7Top
1 楼lujj(卢晶)回复于 2002-06-13 12:08:48 得分 0
100分没人拿吗Top
2 楼ydy781208(勇士)回复于 2002-06-13 12:13:43 得分 0
你是不是放错了地方?Top
3 楼lujj(卢晶)回复于 2002-06-13 12:25:36 得分 0
VC的不放这放那里呀,Top
4 楼oracle3(kk)回复于 2002-06-13 12:29:40 得分 25
没有初始化com
添加AfxOleInit()Top
5 楼lujj(卢晶)回复于 2002-06-13 12:38:11 得分 0
怎么写呢,加到什么地方呢Top
6 楼cool29()回复于 2002-06-13 12:53:13 得分 25
加在Initstance()里Top
7 楼jeffchen(Jeff)回复于 2002-06-13 12:57:02 得分 50
首先,要调用CoInitialize(NULL)初始化COM库。
第二,GetActiveObject要成功的话,必须有Excel在运行当中。
第三,如果GetActiveObject失败了,才需要调用CreateDispatch生成新的实例。
Top




