我目前面临着我必须集成一个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相同?
如果有人可以给我一些有关此的信息或将我指向一些有用的链接,我将非常有帮助。谢谢!
只要您的dll的API不使用任何标准库,并且在混合视觉工作室版本中不应使用任何标准库。
您需要使用char*
而不是std::string
。无std::vector
,std::shared_ptr
,std::unique_ptr
等。
您需要注意的另一件事是,在DLL内部分配了任何分配的内容,这通常是使用C出厂功能和C Destructor函数来完成的,您的应用程序可以调用这些功能以创建和破坏对象。