在项目之间共享源文件

Sharing source files between projects

本文关键字:源文件 共享 之间 项目      更新时间:2023-10-16

我有项目A,其中包含具有类定义和实现MyClass.hMyClass.cpp的源文件。 MyClass正在使用CString .

现在,我决定制作新的项目B,这是用于测试目的MyClass简单的控制台应用程序。在解决方案资源管理器中MyClass我从项目位置向项目添加了A标头和 cpp 文件。直到这一刻,我才知道我必须用MFC才能用CString。我尝试构建项目并得到错误,据我了解要求使用 MFC。

#error :  Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d]

为了了解发生了什么,我决定删除MyClass并在同样使用CString的项目B中创建简单的MyCLass2。构建B后,我遇到了诸如

Error   22  error C2061: syntax error : identifier 'CString'    

MyClassMyClass2中包含的内容相同。

为什么在MyClass的情况下,我被要求添加MFC库?我想在这种情况下编译器知道什么是CString.怎么知道?

我期望得到与MyClass2相同的结果,例如当系统不理解CString是什么时进行编译。

如果在 ATL 应用程序中使用:

CString、CStringA 和 CStringW 从 MFC DLL 导出 (MFC90.DLL(,从不来自用户 DLL。这样做是为了防止 CStringT 从乘法定义。

资料来源:http://msdn.microsoft.com/en-us/library/5bzxfsea.aspx

如果要在不链接到 MFC 的情况下使用,则可以使用以下类:CAtlString、CAtlStringA 和 CAtlStringW。

MyClassMyClass2都包含两个项目中不同的stdafx.h。您可以做的是重命名/删除属于项目 A 的stdafx.h,并查看您在哪里出现编译错误。