GNU/Linux >> Znalost Linux >  >> Linux

Co bych měl použít místo windows.h v Linuxu?

Chybějící definice typu (HANDLE atd.) není váš problém. Váš problém je v tom, že Linux a Windows mají úplně odlišná API, nemůžete jednoduše doufat, že přenesete jedno do druhého nahrazením několika definic typů.

Je třeba vyměnit celou část kódu závislou na platformě. Vaším prvním krokem je proto naučit se Linux API. Nejlepší způsob, jak toho dosáhnout, je získat knihu o programování v Linuxu.

Kromě toho Linux neposkytuje výchozí API pro správu oken jako Windows, takže pokud programujete grafickou aplikaci, musíte si také vybrat knihovnu oken.


Neexistuje žádný "ekvivalent", abych tak řekl, pro windows.h v Linuxu, musíte opravit chyby případ od případu, nebo lépe, přepsat kód pro linux (pokud to není příliš složité).

Pokud však ignorujeme rozhraní API specifická pro Windows, možná budete moci opravit chyby typedef (DWORD, HANDLE, ...):

#ifndef DWORD
#define WINAPI
typedef unsigned long DWORD;
typedef short WCHAR;
typedef void * HANDLE;
#define MAX_PATH    PATH_MAX
typedef unsigned char BYTE;
typedef unsigned short WORD;
typedef unsigned int BOOL;
#endif

zdrojový kód typedef


Linux
  1. Co je příkaz Chown v Linuxu a jak jej používat

  2. Jak používat Python k dotazování WMI (Linux – Windows)

  3. Jaký souborový systém použít, když používáte Windows i Linux?

  1. Linux – Jak používat Dhcpcd v Openwrt místo Udhcpc?

  2. C++:jakou knihovnu regulárních výrazů bych měl použít?

  3. VirtualBox na Linuxu:Jaký obraz Windows použít a kde jej získat?

  1. Proč by se měl v Bash vyhnout eval a co bych měl místo toho použít?

  2. Jaký je ekvivalent linuxového ~ (tilda) ve Windows?

  3. Jaké znaky mám nebo nemám používat v uživatelských jménech v systému Linux?