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