こんにちは私のコードで間違っています私は次の方法でレジストリにクラスを登録しようとしていますが、私はそれがクラスが登録されていないとアプリケーションがクラッシュすることを示しているデバッグ中です。クラスをレジストリに登録するには?
このコードで何が間違っていますか教えてください。
Test::IDiscover *pICalc = NULL;
HRESULT hRes=CoCreateInstance(Test::CLSID_SqlClass, NULL,
CLSCTX_INPROC_SERVER,Test::IID_IDiscover, reinterpret_cast<void**> (&pICalc));
if(hres<0)
cout<<"register failure"<<endl;
else
cout<<"register success"<<endl; // and i am not free the memory any where...
そして、私も同様に試してみました:私は
IDiscoverPtr pt__uuid(SqlClass));
でこれをデバッグするとき、私はこのように行う場合
IDiscoverPtr pt(__uuid(SqlClass));
HRESULT hRes=CoCreateInstance(Test::CLSID_SqlClass, NULL,
CLSCTX_INPROC_SERVER,Test::IID_IDiscover, reinterpret_cast<void**> (&pICalc));
if(hres<0)
cout<<"register failure"<<endl;
else
cout<<"register success"<<endl;
デバッグは、この機能へと進むと、内部COMエラーを示しています。
HRESULTをテストするためのFAILEDとSUCCEEDEDマクロがあります。これは、0と比較する代わりにそれらを使用して、より読みやすいコードを与える必要があります。 – sharptooth