我在我的解决方案中使用了 DllImport
。
我的问题是,我有两个版本的同一个DLL,一个是32位的,另一个是64位的。
它们都暴露了相同名称和相同签名的函数。
我的问题是,我必须使用两个静态方法来暴露这些函数,并在运行时使用 IntPtr
大小来确定要调用哪个方法。
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
大小检查。
如果我能设置文件名,我只需要检查一次,就可以摆脱大量重复的代码。