[英]Visual studio 2010, PortAudio DLL compile and linking issues, C++
[英]issues with porting a DLL C++ class library to Visual Studio
我用C ++编写了一个类库,并使用g ++作为共享对象在Linux中成功编译了它,然后创建了一些使用它的应用程序。 现在我必须将它移植到VS2008。 我给了所有类所需的__declspec(dllexport)前缀,然后尝试编译它。 我得到一堆警告,基本上与以下有关:
我读到人们说在DLL中导出类通常是一个坏主意,有无数的东西可能出错,现在我的头脑中充满了二进制不兼容,dll地狱,编译器版本不匹配等概念,以及说实话,我不能真正做出正面或反面。 那么在Windows中创建共享类库的正确,安全和简便的方法是什么?
谢谢。
首先,你应该问自己,你真的需要一个动态库。 静态库或甚至更好地直接在项目中包含源代码是一个很好的解决方案,没有这些问题。
如果你真的需要DLL,我会这样做(给定很多时间)将你的类包装在C接口中。 然后,您可以将旧的C ++接口重新创建为仅与C ++标头库相互作用,该库仅与从DLL导出的C调用进行交互。 这种方法的一个额外功能是,从几乎任何编程语言中使用您的库都是微不足道的,因为从DLL中导入C函数是非常受支持的。
另一种方法是使用COM,但由于你从Linux移植,这可能不是一个选择。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.