|
分類:[C#]
C++で作られたdllがあります。
その中に下記の関数があります。
RegistCallBackClass(IClient client)
で、
インタフェース IClientをC#で継承して実装しました。
public class CClient: IClient
{
public void aaa(int iRow, int iCol, ref byte pData)
{
throw new NotImplementedException();
}
public void bbb(int iRow, int iCol, ref float pData)
{
throw new NotImplementedException();
}
public void ccc(int c_SizeWin, string pWindows)
{
throw new NotImplementedException();
}
}
で、
CClient cclient = new CClient();
RegistCallBackClass(cclient);
とやって、
コールバックを含むクラスのインスタンスを登録し、
aaa,bbb,cccが呼ばれるかどうか試しているのですが
全く呼ばれません。
該当するイベントは発生していると思われるのですが。。。
COMサーバーと通信するCOMクライアントを作成しており、
COMクライアントを作成する人のために
公開されたdllがあり
サーバーを server.exe /RegServerで登録し
regsvr32 client.dll
をやって
C#のフォームプロジェクトで参照の追加 COMでclient.dll(タイプライブラリ)
した状態です。
個人的にはIClientの実装方法に問題があるのではと思っているのですが
まったく分かりません!!!
dll内にある、コールバック以外の関数呼び出しは成功しており
COMサーバーの情報が取得できています。
何卒、ご教授よろしくお願いします。
|