VC ++プロジェクトで、C#プロジェクト内に含まれるC#クラスのインスタンスを(COM経由で)作成しようとしています。
事実
- C#プロジェクトとC ++プロジェクトはどちらも、.NET4.0を使用してコンパイルされています。
- C#.dllはregasm / codebase "CSharpProjectName.dll" "を使用して登録されており、Windowsコマンドプロンプトで「タイプが正常に登録されました」と報告されます。
- C ++プロジェクトで、C#プロジェクトにクラスのインスタンスを作成しようとしましたが、HRESULTが0x80040154になりました-クラスが登録されていません
これは、C#.dllから.NETオブジェクトのインスタンスを作成する試みの例です。私がインスタンス化しようとしている具体的なクラスはEmployeeと呼ばれ、質問を簡単に提示するために、IPersonインターフェイスを実装しています。
CSharpProjectName::IPersonPtr pPersonPtr;
HRESULT hr = pPersonPtr.CreateInstance(CSharpProjectName::CLSID_Employee);
「regasm/codebase」を使用してc#.dllを登録し、レジストリにキーが存在することを確認したのに、「クラスが登録されていません」というエラーが表示されるのはなぜですか。
どんな助けでも大歓迎です。ありがとう!