異なるハードウェアプラットフォーム上のバーコードスキャナとインターフェイスする.netCFアプリケーションを作成しています。 I.E. MotorolaまたはIntermecなど。自分のDLLを自分のものでラップして共通のインターフェースを表示し、実行時にDLLをReflection LoadFrom()でロードしてからメソッド参照を取得しています。.netCFのDLLにコールバックデリゲートを渡す方法
1つの例外を除いて、私のDLL内のメソッドにほとんどのパラメータを渡すことができます。私はdllにコールバック関数を渡す必要があります。そうすれば、読み込みが発生したときにメインプログラムに戻り、読み込まれたバーコードを処理します。
私がこのメソッドを呼び出すと、ArgumentExceptionがスローされます。
私の質問は、私のdllにこのメソッド参照を渡すか、これを行うためのよりよい方法がありますか?
public delegate void ReadNotify(BCReadData readData);
public void AttachReadNotify(ReadNotify ReadNotifyHandler)
{
if (type == ReaderType.UNKNOWN || scanIntf == null)
return;
try
{
setReadNotify.Invoke(scanIntf,new Object [] {ReadNotifyHandler});
}
catch (Exception e)
{
throw new Exception("Unable to set notify handler" + e.Message);
}
}
ネイティブメソッドの署名はどのように見えますか? – Groo