在c#工程中,通过dll调用c写好的底层软件,其中一个函数的形式如下:
int fun( byte a1, byte* a2, int* a3, byte* a4, ...)
任意参数“...”部分的参数有多种数据类型,包括byte,byte*,UInt16,UInt32等
之前尝试过:
1. [DllImport("xxx.dll")]
private static extern int fun(
byte a1,
[MarshalAs(UnmanagedType.LPArray)]byte[] a2,
UInt16* a3,
[MarshalAs(UnmanagedType.LPArray)]byte[] a4,
__arglist);
2. [DllImport("xxx.dll")]
private static extern int fun(
byte a1,
[MarshalAs(UnmanagedType.LPArray)]byte[] a2,
UInt16* a3,
[MarshalAs(UnmanagedType.LPArray)]byte[] a4,
params object[] value);
但是在调用时都出现问题,提示无法在DLL中找到入口点。请问大家这种情况该如何处理?