//打开EXCEL数据文件
STDMETHODIMP CExcelUser::Open(BSTR FileName, BSTR SheetName, int *Ret)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState()) // TODO: Add your implementation code here
//判断FileName,SheetName是否正确
CString _FileName,_SheetName;
_FileName=FileName;
_SheetName=SheetName;
if (_FileName.IsEmpty() || _FileName.IsEmpty()){
*Ret=2;
return S_OK;
} try{
COleVariant
covTrue((short)TRUE),
covFalse((short)FALSE),
covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR); if (!ExcelApp.CreateDispatch("Excel.Application")) 

*Ret=1;//在这里返回了.
return S_OK;
} wbsMyBooks.AttachDispatch(ExcelApp.GetWorkbooks(),true);
lpDisp=wbsMyBooks.Open(_FileName,covOptional,covOptional,covOptional,covOptional,
covOptional,covOptional,covOptional,covOptional,covOptional,covOptional,covOptional,covOptional);
wbMyBook.AttachDispatch(lpDisp);
wssMysheets.AttachDispatch(wbMyBook.GetWorksheets(),true);
wsMysheet.AttachDispatch(wssMysheets.GetItem(_variant_t(_SheetName)),true);
IsOpenExcel=true;
*Ret=0;
}catch(...){
*Ret=3;
return S_OK;
}
*Ret=0;
return S_OK;
}
我用应用程序做调试都OK.但是封装成DLL就创建出错.为什么.要注意什么吗?请教