我可以在Linux中使用winnt.h吗?

时间:2011-08-09 04:09:25

标签: c linux

我的程序是用C编写的。我想使用库winnt.h,但我不再使用Windows了。

4 个答案:

答案 0 :(得分:8)

似乎是一个奇怪的问题;你应该从winnt.h中弄清楚你真正需要哪些功能,以便你可以学习Linux等价物。 winnt.h并不是一个通用的“库”,它只是内置Windows特定功能的接口。

作为一个重要的警告,您可以通过尝试在Wine的帮助下运行您的应用程序来获得您想要的某种程度。请参阅http://www.winehq.org/如果您只是尝试运行现有应用,那么这可能是一个合理的解决方案。但是,如果您正在尝试制作应用程序的Linux版本,那对您无济于事。

答案 1 :(得分:5)

不,你可以,但它不会有任何好处 - the.h文件只是声明在libs中定义的仅在windows上的函数

答案 2 :(得分:1)

没有。你不能。

winnt.h包含许多依赖于Windows环境的宏和许多仅存在于Windows特定库中的函数声明。因此,在Linux上使用winnt.h并不是真的有用(或可能)。

那说,你可以使用Winelib,其中包括那些特定于Windows的标题所公开的大部分功能,你可以通过以下方式获取这些功能将您的程序与Winelib相关联。通常,这可能不是一个好主意,因为Winelib相对不稳定(与本机Windows版本相比,给定API函数的功能可能不存在,不完整,错误或不兼容)。寻找替代所需内容的Linux替代方案是一个更好的主意。

答案 3 :(得分:0)

您想要使用winnt.h的哪些部分?当然,如果你需要一些漂亮的宏或类型定义,你可以自由地将它复制到你自己的头文件(当然,有依赖)。但是如果在linux环境中将所有winnt.h文件包含到程序中,您将收到大量错误消息。其中一个原因是由 Martin Beckett 在他的回复中宣读。