我有以下代码在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()
函数,我将不胜感激。
答案 0 :(得分:-1)
请检查tsRead()函数的返回类型和参数类型。它应该是int而不是byte。