我想用 C++ 和 Visual Studio 2013 编写跨平台算法。
无意间,人们可以使用特定于平台的 API 函数(_beginThread
、strcpy_s
等),当尝试在 Mac 上编译时,会导致错误。
有没有办法强制 Visual Studio 不使用特定于平台的 API(仅使用标准 C++)?
最佳答案
您可以通过 3 种方式实现这一目标。
使用#ifdef 指令。
#ifdef _MSC_VER strcpy_s(str1, str2); #else strcpy(str1, str2); #endif
为
strcpy_s
创建别名。#ifdef _MSC_VER #define strcpy strcpy_s #endif
将 _CRT_SECURE_NO_WARNINGS 和 _SCL_SECURE_NO_WARNINGS 添加到 Visual Studio 项目中的 C++ 预处理器定义中。仅当您 100% 确定自己在做什么并且使用与平台无关的代码时才这样做。
关于c++ - 强制 Visual Studio 仅使用标准 C++,而不使用平台特定的东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31470198/