我在我的軟件中使用供應(yīng)商提供的 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方法,我可以通過(guò)提供連接詳細(xì)信息來(lái)檢索句柄。然后,我可以使用該句柄來(lái)調(diào)用我所連接的遠(yuǎn)程計(jì)算機(jī)上的方法。DeallocateHandle取消分配該句柄。供應(yīng)商說(shuō)這是必要的。我們發(fā)現(xiàn)可以使用相同的連接詳細(xì)信息檢索多個(gè)句柄。(例如AllocateHandle("10.1.1.1"); AllocateHandle("10.1.1.1");)那行得通。只是,如果句柄已經(jīng)存在,我們就無(wú)法檢索具有不同連接詳細(xì)信息的句柄。(例如AllocHandle("10.1.1.1"); AllocateHandle("10.1.1.2");)。但是,當(dāng)我這樣做時(shí),它會(huì)起作用:[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");但每當(dāng)我們需要更多連接時(shí),我們就必須重新編譯。有沒(méi)有辦法無(wú)需復(fù)制 DLL 文件即可實(shí)現(xiàn)此目的?
1 回答

收到一只叮咚
TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超5個(gè)贊
您可以將同一非托管庫(kù)的多個(gè)實(shí)例加載到進(jìn)程中,但必須使用不同的文件名加載它們。在您的場(chǎng)景中,這可能意味著每次需要新實(shí)例時(shí)都使用臨時(shí)文件名制作 DLL 的副本。
- 1 回答
- 0 關(guān)注
- 131 瀏覽
添加回答
舉報(bào)
0/150
提交
取消