我正在为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