ネイティブコードをラップするC++/cliクラスライブラリがあります。すべてがうまくいきます。テストと使用例のためにC#コードを書いています。 C++のメソッドの1つはファイルの処理です(時間がかかることがあります)ので、コールバック関数を使用してC#呼び出し側に進行状況を報告したいと考えています。C++/cliでデリゲートを宣言してC#で使用する方法
public delegate int ProcListCB(int state, int status, long count);
と、次のようにライブラリを使用してコードからデリゲートを設定するための機能::次のように私はC++ライブラリでのデリゲートを宣言しているのC#で
public ref class MyClass
{
public:
void SetProcListCallback(ProcListCB^cb)
{
HouseKeeping::procListCallback = cb;
}
};
、私は次があります。
ProcListCB procListCB;
public int ProcessListCallback(int state,int status,long count)
{
int rtnVal = 0;
// some code...
return (rtnVal);
}
private void Process_Click(object sender, EventArgs e)
{
VerifySq vsq = new VerifySq();
ProcListCB cb = new ProcListCB(ProcessListCallback);
vsq.SetProcListCallback(cb);
...
}
私はコンパイルエラーを取得しています:
エラーCS0123:「VerifySqListGuなしの過負荷を私は、しばらく検索しましたが、私は答えを見つけませんでした。(明白に)。私は、規約違反を呼び出す関数がいくつかあると想定していますが、詳細はわかりません。どんな助けも高く評価されます...
A C++ 'long'のISN」かなり長い間、あなたはおそらく「長い間」を探しています。それはもっと長いです:) –