我在我的软件中使用供应商提供的 DLL 文件,DllImport例如:
[DllImport("Supplier.dll", EntryPoint = "AllocateHandle")]
private static extern bool AllocateHandle(out uint handle, string connectionDetails);
[DllImport("Supplier.dll", EntryPoint = "DeallocateHandle")]
private static extern bool DeallocateHandle(uint handle);
...
使用该AllocateHandle方法,我可以通过提供连接详细信息来检索句柄。然后,我可以使用该句柄来调用我所连接的远程计算机上的方法。DeallocateHandle取消分配该句柄。供应商说这是必要的。
我们发现可以使用相同的连接详细信息检索多个句柄。(例如AllocateHandle("10.1.1.1"); AllocateHandle("10.1.1.1");)那行得通。只是,如果句柄已经存在,我们就无法检索具有不同连接详细信息的句柄。(例如AllocHandle("10.1.1.1"); AllocateHandle("10.1.1.2");)。
但是,当我这样做时,它会起作用:
[DllImport("Supplier.dll", EntryPoint = "AllocateHandle")]
private static extern bool AllocateHandle(out uint handle, string connectionDetails);
[DllImport("Supplier2.dll", EntryPoint = "AllocateHandle")]
private static extern bool AllocateHandle2(out uint handle, string connectionDetails);
AllocateHandle("10.1.1.1"); AllocateHandle2("10.1.1.2");
但每当我们需要更多连接时,我们就必须重新编译。
有没有办法无需复制 DLL 文件即可实现此目的?
收到一只叮咚
相关分类