Windows和Linux之间的可移植代码

时间:2011-02-02 20:29:51

标签: c++

我有一个为linux编写的应用程序,我想让它在windows下执行。那么,如果程序在windows下运行,我怎样才能在代码中创建一个特定的行?我知道#ifdef的某些内容......谢谢

4 个答案:

答案 0 :(得分:6)

您正在寻找:

#if defined(_WIN32)
    // Your Windows specific code here
#endif

根据评论进行编辑:

这里有一个关于_WIN32 vs WIN32的讨论:Whats the difference between the win32 defines

答案 1 :(得分:2)

这取决于代码。你或许可以重新编译它然后去。如果没有,移植所涉及的工作可能是微不足道的(这里或那里有一些小细节),或者它几乎是不可能的(例如,试图移植valgrind)。

在您开始使用#ifdef之前,请先阅读Henry Spencer's paper主题。

答案 2 :(得分:0)

我使用#ifdef _MSC_VER来了解它是否是Microsoft编译器,但我确信还有其他方法。

答案 3 :(得分:0)

通常为#ifdef _WIN32,但#ifdef WIN32也有效。