这是我正在寻求反馈的情况:
所以,这是我的问题:
因此,我的问题归结为使用不同版本的Visual Studio编译的彼此运行的应用程序和Dll,以及如果各个层静态或动态链接,它是否会有所不同。
感谢您的反馈
答案 0 :(得分:2)
如果从ControllerAPI和WrapperAPI导出的函数的签名没有改变,那么绑定应该是精细的,静态的或动态的。
但是,如果函数使用的类型和对象(输入,输出,返回参数)依赖于外部库;那么你可能会有问题。
例如,假设ControllerAPI使用一个版本的C运行时分配内存,并且WrapperAPI希望能够自己释放它 - 那么在这种情况下它们都需要链接到相同版本的C运行时。如果您在VS2008中重新创建项目而不是导入和升级它,那么您的默认编译目标和导入的库可能已更改。在使用MFC,ATL等已知类型创建的库中可以观察到类似的问题。
不幸的是,您需要手动检查这些情况,但如果您可以检查以下项目,那么您应该没问题。我还应该注意,在Visual Studio的任何两个给定版本之间以及针对不同编译目标或Platform SDK版本的任何两个版本之间也会检查这些内容。