如何在Visual C++中有条件地包含一个不存在的文件
How can I conditionally include a nonexistent file in Visual C++?
我正在使用Visual C++来构建和测试一个项目,但我也会在其他平台上使用它。我最初是在另一个平台上启动代码的。
在我的一些类头中,我需要包含一个特定于其他平台的文件,但是,Visual C++工作区中不存在该文件。
我试过使用这样的代码:
#if TARGET == OTHERPLATFORM
#include "themissingfile.h"
#endif
其中TARGET在其他地方被定义为WINDOWS
#define TARGET WINDOWS
然而,我仍然收到一个编译器错误,指出找不到"themissingfile.h"。预编译器似乎在if之前处理include。解决这个问题的最佳方法是什么?我想我可以在Visual C++源文件夹中创建一个空白的"themissingfile.h",但在我看来应该有更好的解决方案。
#define TARGET WINDOWS
没有将TARGET设置为字符串WINDOWS:它将其设置为WINDOWS定义的任何对象
#define WINDOWS // Sets WINDOWS to 0
#define OTHERPLATFORM // Sets OTHERPLATFORM to 0
#define TARGET WINDOWS // Sets TARGET to 0
#if TARGET == OTHERPLATFORM // Evaluates to 0==0, so true
改用_WIN32
宏:
#ifndef _WIN32
#include "themissingfile.h"
#endif
CCD_ 3是为32位和64位构建定义的。请参见C/C++预定义宏。
相关文章:
- 我们可以访问一个不存在的联盟的成员吗
- C++:对不存在的命名空间使用命名空间指令
- g++ 说函数不存在,即使包含正确的标头
- 显式 std::exception_ptr 转换为 bool 不存在.VS2010 错误?
- C++ 尝试在不存在的构造函数中引用已删除的函数(使用 rapidJson)
- 查找第一个数组中不存在的元素
- 查找不存在的键时,unordered_map返回什么
- 如何优化代码以返回最接近给定整数的数字,但给定列表中不存在?
- set::find 查找不存在的元素
- 有没有办法将字符串添加到 Vector 中,但前提是它尚不存在?->C++
- inet_ntop返回不存在的地址
- CPP 使用不存在的键访问映射
- 为什么QMediaGaplessPlaybackControl不存在?
- 如果键不存在,使用 [] 运算符访问 STL Map 元素会添加新元素
- 有效地测试 QSet 是否包含元素,如果不存在,则插入
- 如何在Visual C++中有条件地包含一个不存在的文件
- C++第三方库包含不存在的头文件
- 打开包含不存在文件的文件流后不会引发异常
- 为什么我可以在多个包含const int的cpp文件中包含一个头文件,而不会出现编译器错误
- 有没有一种方法可以测试默认构造函数是否不存在