COMクラスを呼び出すC#Winformsアプリケーションがあります。Visual Studioを使用してデバッグする場合、C ++コードにステップインしてS_OKを返しますが、関数が戻るとVisual Studioがハングし、アプリケーションがクラッシュします。プログラムの実行を停止するには、VSプロセスでプロセスを終了する必要があります。Visual Studioの外部でアプリを実行すると、アプリケーションがクラッシュします。
すべてが正常に機能していて、この問題を引き起こすために何をしたのかわかりません。
どんな助けでも大歓迎です。ありがとう
Sj
これはインターフェース定義です
typedef struct
{
long ExpiryData
BSTR IssuedBy;
} LicenceData;
[
object,
uuid (5A734F95-EABE-440B-8B7E-0F73538A24AC),
pointer_default(unique),
helpstring("ILicenceReader Interface"),
]
interface ILicenceReader : IDispatch
{
HRESULT ReadLicenceFile ([in, out]LicenceData* plicenceData, LPCTSTR filePath);
};
[
uuid(C2833A21-6586-4648-ABC8-D42BC3225699)
]
coclass LicenceReader
{
[default] interface ILicenceReader;
};
COM dllを参照し、VSが相互運用機能とc#アプリケーションでの使用法を生成できるようにしました。
LicenceData data = new LicenceData();
ILicenceReader reader = new LicenceReader();
reader.ReadLicenceFile(ref data, filePath);
ご協力いただきありがとうございます。