4

私は COM の初心者で、dll のデバッグに問題があります。このコードでは:

        _Check_return_ HRESULT CoCreateInstance(_In_ REFCLSID rclsid, _In_opt_ LPUNKNOWN pUnkOuter = NULL, _In_ DWORD dwClsContext = CLSCTX_ALL)  
throw()  
    {  
        ATLASSERT(p == NULL);  
        return ::CoCreateInstance(rclsid, pUnkOuter, dwClsContext, __uuidof(T), (void**)&p);  
    }

その見返りに、エラー R6034: アプリケーションが C ランタイム ライブラリを正しくロードしようとしています。

プラス: VS 2008 の出力ウィンドウで、特定のメッセージでデバッグが停止することに気付きました:

'OmpClimApp.exe': Loaded '\\omegaserver\omega\app32\OMEGA.DLL\RWUXThemeS.dll', Binary was not built with debug information.

エラーはどこにありますか?

4

1 に答える 1

3

問題は、 MSCRTライブラリのバージョンの混合Debugとアセンブリにあるようです。アセンブリは同じ共通のpublicKeyTokenを使用するため、単一のアプリケーションに同時にロードすることはできません。ReleaseMicrosoft.VC80.CRTMicrosoft.DebugVC80.CRT"1fc8b3b9a1e18e3b"

あなたの場合、マニフェストはをRWUXThemeS.dll参照しますが、ビルドMicrosoft.VC80.CRTでのアプリケーションのマニフェストはを参照します。ロードしようとすると、説明が実際には正しくないというエラーが発生します。「公開鍵が別のアセンブリによってすでに使用されているアセンブリをロードできません」というエラーが発生します。DebugMicrosoft.DebugVC80.CRTRWUXThemeS.dll

考えられる解決策:RWUXThemeS.dllデバッグビルドでアプリケーションにリンクするには、のデバッグバージョンが必要です。その名前が。であると仮定しますRWUXThemeSD.dll

詳細については、MSDNを参照してください(コミュニティコンテンツ、メインの記事は問題に関連していないようです)。

RWUXThemeライブラリはRogueWaveStingrayStudioの一部です。ドキュメントを参照してください。

于 2012-11-12T11:00:06.840 に答える