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

C 我可以在Linux中使用winnt.h吗?,c,linux,C,Linux,我的程序是用C编写的。我想使用librarywinnt.h,但我不再使用Windows了。不,你可以这样做,但这不会有任何好处,.h文件只是声明了在libs中定义的函数,这些函数只在Windows上定义,这似乎是一个奇怪的问题;您可能应该从winnt.h中澄清您实际需要哪些函数,以便学习Linux等效功能。h并不是一个真正的通用“库”,它只是一个内置Windows特定函数的接口 作为一个主要的警告,你可以尝试在Wine的帮助下运行你的应用程序,从而在一定程度上得到你想要的东西。看看你是否只是试图

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

不,你可以这样做,但这不会有任何好处,.h文件只是声明了在libs中定义的函数,这些函数只在Windows上定义,这似乎是一个奇怪的问题;您可能应该从winnt.h中澄清您实际需要哪些函数,以便学习Linux等效功能。h并不是一个真正的通用“库”,它只是一个内置Windows特定函数的接口


作为一个主要的警告,你可以尝试在Wine的帮助下运行你的应用程序,从而在一定程度上得到你想要的东西。看看你是否只是试图运行一个现有的应用程序,这可能是一个合理的解决方案。但是,如果你想为你的应用程序制作一个Linux版本,那对你没有多大帮助。

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

不,你不能

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


这就是说,您可以使用,其中包括那些特定于Windows的标题所公开的大部分功能,并且您可以通过将程序与Winelib链接来获得这些功能。一般来说,这可能不是一个好主意,因为Winelib相对不稳定(与本机Windows版本相比,给定API函数的功能可能缺失、不完整、有缺陷或不兼容)。寻找一个Linux本机替代品是一个更好的主意。

为什么要在Linux上使用Windows功能?这就像去一家高档餐厅,问你是否可以在麦当劳点餐。