集成使用不同VS版本开发的应用程序

时间:2019-03-18 06:48:20

标签: c++ visual-studio visual-c++

我目前面临的任务是必须集成IMU,该IMU的API是使用Visual Studios 2015开发的,而集成软件的API仅与Visual Studios 2010兼容。 我已经尝试过将IMU API适配到VS2010,但这变得过于复杂和乏味。在合理的时间内不可行。

我想到的一个解决方案是在VS2015中实现一个类(简称为BridgeClass),该类将使用简单的结构从IMU读取所需的数据。这将实现为dll,我可以将其链接到VS2010中的集成软件。

但是,尚不清楚的部分是,如何将两个库彼此分开,以使VS2010永远不会“看到”任何使它烦恼的VS2015。是否可以使用dll?我将必须将IMU库链接到BridgeClass(例如,打开到IMU的端口并从IMU读取数据),然后将其链接到集成软件并最终与直接集成IMU相同?

如果有人可以给我一些相关信息或指向一些有用的链接,我将非常有帮助。谢谢!

1 个答案:

答案 0 :(得分:0)

只要您的DLL的API不使用任何标准库,并且没有在DLL边界上引发任何异常,它就可以在混合Visual Studio版本中工作。

您需要使用char*而不是std::string。否std::vectorstd::shared_ptrstd::unique_ptr等。

您需要注意的另一件事是,DLL中分配的任何内容都必须在DLL内部释放,这通常是使用ac工厂函数和ac析构函数来完成的,您的应用程序可以调用它们来创建和销毁对象。