在项目之间共享源文件
Sharing source files between projects
我有项目A
,其中包含具有类定义和实现MyClass.h
和MyClass.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'
MyClass
和MyClass2
中包含的内容相同。
为什么在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。
MyClass
和MyClass2
都包含两个项目中不同的stdafx.h
。您可以做的是重命名/删除属于项目 A 的stdafx.h
,并查看您在哪里出现编译错误。
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- 是否可以通过C++扩展强制多个python进程共享同一内存
- 在cuda线程之间共享大量常量数据
- 如何从具有移动语义的类对象中生成共享指针
- 在c代码之间共享数据的最佳方式
- 在两个类中共享相同的函数调用,并在不需要时避免空实例化
- 将静态库链接到不带-fPIC的共享库中
- 为测试目标创建具有不同源文件夹的文件
- C++两个源文件之间共享的枚举的静态实例
- 构建并使用使用另一个共享库的源文件中的共享库.(Rinside)
- 我应该在源文件之间共享的常量的定义中添加关键字"extern"吗
- 如何在GLFW 3中的源文件之间共享窗口上下文
- 在 C# 和 C++ 之间共享源文件
- 如何使用 extern 在 C++ 中的源文件之间共享地球变量
- 如何更改从多个源文件编译的g++生成的Linux共享库的入口点
- 具有公共源文件的一个项目中的多个共享库
- 在c/c++中,在源文件之间共享变量的最佳策略是什么
- 在项目之间共享源文件
- 如何使用CMake为静态库创建共享库包装器(不使用源文件)
- 如何在c++11和c++98的共享库创建中使用cmake 2.8.2进行单次构建时每次重新编译源文件