我正在将几个非托管c++ DLL导入到我的项目中,但是导入的DLL具有相同的方法名称,这会导致编译器问题。例如;
unsafe class Myclass
{
[DllImport("myfirstdll.dll")]
public static extern bool ReturnValidate(long* bignum);
[DllImport("myseconddll.dll")]
public static extern bool ReturnValidate(long* bignum);
public Myclass
{
int anum = 123;
long passednum = &anum;
ReturnValidate(passsednum);
}
}
现在,我想做的就是在导入时重命名该方法。就像是;
[DllImport("myseconddll.dll")]
public static extern bool ReturnValidate(long bignum) AS bool ReturnValidate2(long bignum);
这可能吗?
最佳答案
您可以为导入的函数提供任何名称,只能使用DllImport
属性在EntryPoint
中指定函数的名称。因此,您的代码可能看起来像:
[DllImport("myfirstdll.dll", EntryPoint="ReturnValidate")]
public static extern bool ReturnValidate1(long bignum);
[DllImport("myseconddll.dll", EntryPoint="ReturnValidate")]
public static extern bool ReturnValidate2(long bignum);