Могу ли я использовать winnt.h в Linux? - PullRequest
0 голосов
/ 09 августа 2011

Моя программа написана на C. Я хочу использовать библиотеку winnt.h, но я больше не использую Windows.

Ответы [ 4 ]

8 голосов
/ 09 августа 2011

Похоже на странный вопрос;вам, вероятно, следует уточнить, какие функции вам действительно нужны из winnt.h, чтобы вы могли изучить эквивалент Linux.winnt.h на самом деле не «библиотека» общего назначения, это просто интерфейс для встроенных функций, специфичных для Windows.

Принимая это во внимание, вы можете получить некоторую степень желаемого, если попытаетесьзапустить ваше приложение с помощью Wine.См. http://www.winehq.org/ Если вы просто пытаетесь запустить существующее приложение, это может быть разумным решением.Однако, если вы пытаетесь сделать версию своего приложения для Linux, это не очень вам поможет.

5 голосов
/ 09 августа 2011

Нет, вы могли бы, но это не принесет пользы - файл .h просто объявляет функции, которые определены в библиотеках, которые есть только в Windows

1 голос
/ 10 августа 2011

Нет.Вы не можете.

winnt.h содержит множество макросов, которые зависят от среды Windows, и множество объявлений функций, которые существуют только в библиотеках, специфичных для Windows.Так что не очень полезно (или не возможно) использовать winnt.h в Linux.

При этом , вы можете использовать Winelib ,который включает в себя большинство функций, предоставляемых этими заголовками, специфичными для Windows, и вы можете получить эти функции, связав вашу программу с Winelib.В общем, это, вероятно, не очень хорошая идея, поскольку Winelib относительно нестабилен (функциональность данной функции API может отсутствовать, быть неполной, содержать ошибки или быть несовместимой по сравнению с родной версией Windows).Гораздо лучшая идея - найти нативную альтернативу Linux тому, что вам нужно.

0 голосов
/ 09 августа 2011

Какие части winnt.h вы хотите использовать?Конечно, если вам нужны хорошие макросы или определения типов из них, вы можете свободно скопировать их в свой собственный заголовочный файл (конечно, с зависимостями).Но если вы включите все файлы winnt.h в свою программу в среде Linux, вы получите множество сообщений об ошибках.Одной из причин этого является Мартин Беккет в своем ответе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...