いくつかのdllファイルとexeファイルがあります。これらのファイルを登録し、目的のインスタンスを作成しました。あるケースでは、インスタンスが作成されませんでした。他の dll と exe はすべて正常な結果につながりますが、この 1 つだけが問題でした。前回問題のあるファイルを登録したときはインスタンスが作成されませんでしたが、問題のあるファイルが登録されていない場合は、ファイルを登録しようとすると成功しましたが、インスタンスは作成されませんでした。コードは変更されていません。同じコードはインスタンスを作成しなくなりました。同じコードが問題のあるファイルを登録する前にインスタンスを作成できるため、奇妙に思えます。CoGetClassObjectのCoCreateInstanceを同じ結果に置き換えてみました。エラーはServer execution failedです。
Visual Studio 2010 とCLSCTX_LOCAL_SERVERフラグを使用しています。
私の仮説は、この奇妙な動作は 64 ビット環境と 32 ビット COM オブジェクトによって引き起こされるというものです。この回避策を試してみましたが、結果は同じServer execution failedです。何か案は?
編集: COM オブジェクトに使用されるインターフェイス IID を検索しましたが、レジストリにはこの IID がありません。これは、この状況の可能な手がかりですか?