我遇到了一個問題,我很確定我知道答案,但我想我至少會問,看看是否有一些「魔法子彈「,這可能會讓我非常頭疼。混合32位和64位P /調用
以下是高級視圖。
我有一個託管的應用程序。此應用程序通過來自不同供應商的第三方庫與硬件進行交互。我完全控制了消費的託管應用程序,並對硬件API庫進行了零控制。
供應商A僅提供32位原生SDK。爲了讓我們能夠在64位系統上使用它,我們將應用程序標記爲以32位模式運行。一切都好。
我們現在正與供應商B集成,供應商B在64位機器上提供64位特定的本機API庫。供應商B的32位原生DLL無法在64位系統上工作(試過)。如果我構建以64位或AnyCPU運行的測試工具,則工作正常。如果我將它標記爲32位,它會在P/Invoke調用中失敗。
似乎供應商A和供應商B硬件將在64位個人電腦上互相排斥,但我想知道是否有人對如何解決這個問題有什麼建議。
我們已經在anotehr AppDomain中將其隔離,所以安全性很好。將它移動到anotehr進程會增加我們希望避免的界面複雜性,但似乎是要麼放棄供應商A的硬件。 – ctacke 2010-12-08 23:03:07