C#でのライブラリの機能を複製しようとしていますが、その機能の一部は外部にいくつかの機能を公開することができます。C#で管理されていないエクスポートMissingMethodException
私がSetAllAnalog()を呼び出すと、以下の例外が発生します。これは実際に問題を解決する方法ではありません。なぜなら、内部関数を別の関数にラップしてエクスポートするだけで済むからです。
私はこれがなぜ起こっているのか、すでに言及された修正以外のこれを修正するより良い方法があるかも知りたいと思いますが。
私は、コードを次ています
[DllExport("OutputAllAnalog", CallingConvention = CallingConvention.StdCall)]
public static void OutputAllAnalog(int Data1, int Data2)
{
if (!_k8055D.Connected || Data1 < 0 || 255 < Data1 ||
Data2 < 0 || 255 < Data2) return;
_k8055D.AnalogOutputChannel[0] = (double)Data1/255 * 5;
_k8055D.AnalogOutputChannel[1] = (double)Data2/255 * 5;
}
[DllExport("SetAllAnalog", CallingConvention = CallingConvention.StdCall)]
public static void SetAllAnalog()
{
OutputAllAnalog(255, 255); //exception
test(); //No exception
}
public static void test()
{
}
例外:
An unhandled exception of type 'System.MissingMethodException' occurred in K8055Test.exe
Additional information: Method not found: 'Void K8055Simulation.K8055.OutputAllAnalog(Int32, Int32)'.
まだ試したことはありませんが、答えが分かりやすいので、簡単なルートになり、機能をエクスポートして内部メソッドを呼び出す別のメソッドを使用するだけです。 – Encore