C#如何从C ++ DLL调用函数

时间:2017-05-10 10:08:56

标签: c# c++ dll

我有以下代码在dll文件中实现

typedef  signed __int16 TS_ELEMENT;
typedef  TS_ELEMENT *   TS_DATA;
LIBTERAVIEW_API TS_RES tsRead(TS_DATA buffer);

我想在我的C#程序中调用此函数并使用它来查看从中打印的数据。我已阅读有关非托管结构和从DLL导入函数的内容;但是,我无法弄清楚如何在我的代码中执行此操作的语法。根据我对此主题的阅读,我生成了以下代码:

[DllImport("libteraview.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern void tsStart();

[DllImport("libteraview.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern byte* tsRead(byte* buffer);`

第一个工作但是,我无法获得运行和读取数据的第二种方法,因为它总是给我一个Unhandled Exception错误。

对于如何从DLL导入此tsRead()函数,我将不胜感激。

1 个答案:

答案 0 :(得分:-1)

请检查tsRead()函数的返回类型和参数类型。它应该是int而不是byte。