我现在得到一个COM里面只有一个DLL文件和头文件.H,我就只有用下面的方法调用COM里面的方法,但却怎么也不行!代码大致如下:
#import"D:\OmniDriver\OOI_HOME\USB***.dll" no_namespace
BOOL CMydlg::OnOpendevice()
{
try
{
if (AfxOleInit())
AfxMessageBox("初始化COM成功!");
ICoUSB4000Ptr spFun;
HRESULT hr = spFun.CreateInstance( L"OmniDriver.CoUSB4000.1" );
if(SUCCEEDED( hr ))
{
HRESULT ret;
AfxMessageBox("创建COM实例成功");//(这里显示已经创建了COM)
ret=spFun->CreateUSB();//(这里就不行了,所以报错了错误代码如题)
// if (SUCCEEDED(ret))
// {
// ret=spFun->openSpectrometer(1);
//
// }
if (SUCCEEDED(ret))
{
AfxMessageBox("都执行了");
}
}
}
catch( _com_error &e ) {
_bstr_t bstrSource(e.Source());
_bstr_t bstrDescription(e.Description());
CString strErrInfo;
strErrInfo.Format(_T("\tCode = %08lx"), e.Error());
strErrInfo += " Msg: ";
strErrInfo += e.ErrorMessage();
strErrInfo += " Source: ";
strErrInfo += bstrSource;
strErrInfo += " Description: ";
strErrInfo += bstrDescription;
TRACE(strErrInfo);
AfxMessageBox(strErrInfo);
//输出错误信息 }return TRUE; }//哪个好心的大哥帮我看看啊
#import"D:\OmniDriver\OOI_HOME\USB***.dll" no_namespace
BOOL CMydlg::OnOpendevice()
{
try
{
if (AfxOleInit())
AfxMessageBox("初始化COM成功!");
ICoUSB4000Ptr spFun;
HRESULT hr = spFun.CreateInstance( L"OmniDriver.CoUSB4000.1" );
if(SUCCEEDED( hr ))
{
HRESULT ret;
AfxMessageBox("创建COM实例成功");//(这里显示已经创建了COM)
ret=spFun->CreateUSB();//(这里就不行了,所以报错了错误代码如题)
// if (SUCCEEDED(ret))
// {
// ret=spFun->openSpectrometer(1);
//
// }
if (SUCCEEDED(ret))
{
AfxMessageBox("都执行了");
}
}
}
catch( _com_error &e ) {
_bstr_t bstrSource(e.Source());
_bstr_t bstrDescription(e.Description());
CString strErrInfo;
strErrInfo.Format(_T("\tCode = %08lx"), e.Error());
strErrInfo += " Msg: ";
strErrInfo += e.ErrorMessage();
strErrInfo += " Source: ";
strErrInfo += bstrSource;
strErrInfo += " Description: ";
strErrInfo += bstrDescription;
TRACE(strErrInfo);
AfxMessageBox(strErrInfo);
//输出错误信息 }return TRUE; }//哪个好心的大哥帮我看看啊
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货