0

C# メソッドからネイティブ C DLL set_power() に整数を渡したいのですが、C# が C 関数 set_power() を呼び出すと、実行時エラー「PInvokeStackImbalance」が発生します。

C# 宣言:

[DllImport("Ultrasound_Frame_Grabber.dll")]
public static extern int set_power(int power_percent);

C# メソッド:

int target_power_percent = 123;
int new_value = set_power(target_power_percent);   <<<<<<<<<<<<<  GETS ERROR

ネイティブ C DLL 関数:

__declspec(dllexport)  int   set_power( int power_percent  )
{
    ...
}
4

2 に答える 2

1

stdcallネイティブ側で使用します。

于 2013-10-04T14:46:52.040 に答える
0

やってみました:

public static extern Int32 set_power(Int32 power_percent);

編集:

ああ、そして:

[DllImport("Ultrasound_Frame_Grabber.dll", CallingConvention=CallingConvention.Cdecl)]
于 2013-10-04T14:58:38.683 に答える