我DllImport
在我的解决方案中使用。
我的问题是我有两个版本的同一个 DLL,一个是为 32 位构建的,另一个是为 64 位构建的。
它们都公开了具有相同名称和相同签名的相同功能。我的问题是我必须使用两种静态方法来公开这些方法,然后在运行时使用IntPtr
size 来确定要调用的正确方法。
private static class Ccf_32
{
[DllImport(myDllName32)]
public static extern int func1();
}
private static class Ccf_64
{
[DllImport(myDllName64)]
public static extern int func1();
}
我必须这样做,因为myDllName32
并且myDllName64
必须保持不变,而且我还没有找到在运行时设置它的方法。
有没有人对此有一个优雅的解决方案,所以我可以摆脱代码重复和恒定IntPtr
大小检查。
如果我可以设置文件名,我只需要检查一次,就可以摆脱大量重复的代码。