我有一个要在C#应用程序中使用的第三方dll。我有C ++中的示例代码,包括函数声明,并且创建了一个控制台应用程序,并用(我认为)等效的数据类型和我自己的printf()进行了修改。当我运行该应用程序时,它会在第一个函数调用时出现致命异常而窒息,
发生FatalExecutionEngineError
由于本机框架位于调用堆栈的顶部,因此无法评估表达式。
该功能的原始原型是这个
我翻译成这个
谁能给我指导以使它起作用?
谢谢
戴夫
发生FatalExecutionEngineError
由于本机框架位于调用堆栈的顶部,因此无法评估表达式。
该功能的原始原型是这个
函数声明C ++:
void __cdecl C_lin_coeff_batch(double z[], int32_t z_fpp, double theta[],
int32_t C_in[], bool inverse, int32_t C_fpp,
int32_t C_int_fpp, uint16_t method, int32_t
ci_mean_sel, double cc[], uint32_t cc_fpp[],
int32_t ccx[], double cci[], double best_fit[],
uint32_t cn_div[], uint32_t cn_shift[],
uint32_t n_samples, int32_t n_sample_x_devices,
int32_t n_cc, int32_t n_cn_div, int32_t n_cn_shift);
我翻译成这个
C# Dllimport:
[DllImport("linearize_r01.dll")]
public static extern void c_lin_coeff_dut(Int32[] C_in, double[] z, double[] theta,
Int32 C_fpp, Int32 C_int_fpp, Int32 z_fpp, int inverse,
ref double[] cc, ref UInt32[] cc_fpp, ref Int32[] ccx, ref double[] cci,
ref double[] error_vs_z, ref UInt32[] cn_div, ref Int32[] cn_shift,
Int32 n_samples, Int32 n_cc, Int32 n_cn_div, Int32 n_cn_shift);
谁能给我指导以使它起作用?
谢谢
戴夫