如何在MS Visual Studio 2008(我使用C++编程)中的2个项目之间共享源代码?
就我而言,我有主游戏项目的代码,现在我想制作一个使用游戏代码的简单模型编辑器,以便每当我在一个项目中更改/添加一些代码时,它将在第二个一。在项目之间共享源代码[VS2008,C++]
回答
这样做的常用方法,(你到处都会看到它在开源软件包),就是将所有头文件打包到一个'包含'文件夹中,并将所有的头文件打包到'源'文件夹中。
现在在任何需要代码的项目中,您可以进入'项目属性 - > c/C++ - >常规 - >其他包含目录'。然后将路径添加到“包含”目录。最后,将源代码/头文件添加到您的项目中,现在两个项目都引用完全相同的文件,这些文件位于不错的共享位置。
您也可以将共享代码构建为静态库或更好(IMO)DLL。这涉及到创建一个新项目,并在VS 2008中学习一些关于链接器的知识,但其实并没有太复杂。这也有好处(对于DLL),两个项目不会重新编译相同的代码,而是编译一次并使用两次。
您可以将所需的类移动到单独的库项目中,然后从第二个项目中引用它。任何更改将自动提取。
(我不是一个C++开发者,但上述工程C#项目,我会假设它为C++项目也是如此)
你基本上有两种选择:
- 创建静态库。在这里,库中的所有代码将被导出并且可以被谁链接到这个库。
- 创建一个DLL:在这里,你可以定义你想要导出和使用的类和方法。
假设你有一个类classA,它在classA.h中定义并在classA.cpp中实现,并且你希望从两个不同的应用程序(应用程序B和应用程序C)使用同一个类。
使用方法1,您将创建一个静态库,方法是转到file-> new win32项目,并在弹出的框中选择应用程序设置并将其设置为“静态库”。然后在这个静态库中添加你的classA.h和classA.cpp。
要在应用程序B或C中使用此静态库,请转到引用并添加对刚创建的静态库项目的引用。然后在你的应用程序中包含classA.h(不要忘记设置额外的包含目录路径),并且你很好。
该方法对于DLL也非常相似,这里的区别在于,您可以选择导出DLL中代码的哪些部分(即对外部调用者可见)。
从整体角度来看: 使用静态库方法,您的代码将被编译到两个应用程序中。
使用DLL方法,将只有共享代码的一个副本(在DLL中,这将是一个单独的文件),这将根据需要加载。
- 1. 在几个项目之间共享c#类源代码
- 2. 在项目之间共享代码库
- 3. Gradle多项目 - 共享项目之间的源代码
- 4. 在两个项目之间共享源代码?
- 5. 在两个Netbeans项目之间共享源代码
- 6. 如何共享项目之间的代码和资源
- 7. Eclipse项目之间的共享资源
- 8. 在SQL Server和库项目之间共享空间代码
- 9. C# - 项目间共享资源文件
- 10. 在git中共享两个项目之间的代码
- 11. 在PC和笔记本之间共享项目的代码
- 12. 我如何在git项目之间共享基本代码?
- 13. 在Qt项目之间共享代码文件
- 14. 在GAEJ和Android项目之间共享代码
- 15. 如何在两个项目之间共享代码?
- 16. 在两个不同的git项目之间共享代码
- 17. 在tfs 2010中的项目之间共享代码
- 18. 如何在我的项目之间共享代码?
- 19. 如何在两个GWT项目之间共享代码?
- 20. 如何在2个项目之间共享WinForms和代码
- 21. Xamarin在iOS,Android和Core项目之间共享代码
- 22. 在多个项目之间共享核心代码库
- 23. 在几个Access 2013项目之间共享VB代码
- 24. 在iOS和Android项目之间共享代码
- 25. 在多个Xcode + PhoneGap项目之间共享代码
- 26. 在没有svn的项目之间共享代码:externals
- 27. 在没有dll的2个项目之间共享代码
- 28. 如何在多个GWT eclipse项目之间共享代码?
- 29. 在Android Studio中的2个项目之间共享代码
- 30. 两个C#项目共享代码
+1的动态链接,符合“每当我改变/在一个项目中,将在第二个更新中添加一些代码”的规定 – 2009-08-25 18:09:20
记住,动态链接(DLL),如果STL数据类型('的std :: VECTOR','的std :: string'等)的公共接口上使用,那么库项目和使用必须连接到标准库的同一版本(VS2008)项目。如果有任何不匹配,程序将以难以处理的方式崩溃。 – rwong 2013-02-25 20:06:14