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 回答