我正在爲Peachtree API編寫應用程序,它需要使用任何版本的API。不幸的是,來自Peachtree 2011的DLL無法與Peachtree 2010進行交互,反之亦然,即使這兩個DLL存儲在相同的位置並使用完全相同的代碼運行。在運行時加載COM DLL?
我以爲我應該能夠通過它的文件路徑引用dll,將特定版本保留爲false,將interop類型嵌入到false中,並將其複製到false,然後使用該機器的任何版本,但我當我這樣做時會得到一個錯誤 - 「調用的目標引發了異常。」
有沒有辦法延遲綁定DLL,即使它是COM?
我可以提供任何您認爲會有幫助的代碼示例,但它更像是一個項目設置問題。
編輯:非常感謝你的幫助。我在另一個人的問題上找到了我的解決方案並將其發佈到此處。
通常你在編譯時鏈接interop DLL,如果它存在於系統上,它會在運行時加載COM DLL。錯誤中是否還有其他信息或內部異常?是否有錯誤代碼(0xZZZZZZZZ)?你能鏈接堆棧跟蹤,還是提供了關於你的應用程序的太多信息? Peachtree API,它是COM還是鏈接到COM的DLL? – 2010-08-31 18:04:12