熊本大学上海代表处:COM组件的调用方式#import

来源:百度文库 编辑:偶看新闻 时间:2024/04/29 11:30:59
采用import方式可以引用tlb或dll文件当采用#import "..\Simple16\Debug\Simple16.tlb" no_namespace这种不使用命名空间的引用方式时,在定义库中的对象时无需使用Simple16Lib::前缀,若没有使用no_namespace字段,在使用库中的资源时,需要加上Simple16Lib::前缀,否则编译时会出现undeclared identifier错误/*Simple16Lib::*/IDispConnectPtr spDispConnect;
 HRESULT hr = spDispConnect.CreateInstance( L"Simple16.DispConnect.1" ); // 使用 ProgID
// HRESULT hr = spDispConnect.CreateInstance( __uuidof( /*Simple16Lib::*/DispConnect) ); // 使用 CLSID
 ASSERT( SUCCEEDED( hr ) ); try
 {
  spDispConnect->Add( 1, 2 );  }
 catch( _com_error &e )
 {
  // 在这里可以取得详细的错误信息
  // 以后在介绍 ISupportErrorInfo 接口时详细说明
//  e.Description();
//  e.ErrorMessage();
//  e.ErrorInfo();
//  ......
  e; // 由于没有使用 e, 加上这行只是为了取消编译警告
  AfxMessageBox( _T("Error") );
 }