我正在将几个非托管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);

10-07 15:47