欠落している typedef (HANDLE
など)あなたの問題ではありません。あなたの問題は、Linux と Windows がまったく異なる API を持っていることです。いくつかの型定義を置き換えるだけで一方を他方に移植することは期待できません。
コードのプラットフォームに依存する部分全体を置き換える必要があります。したがって、最初のステップは Linux API を学ぶことです。これを行う最善の方法は、Linux プログラミングに関する本を入手することです。
さらに、Linux は Windows のようにウィンドウ管理用のデフォルト API を提供していないため、グラフィカル アプリケーションをプログラミングする場合は、ウィンドウ ライブラリも選択する必要があります。
いわば、Linux の windows.h には「同等の」ものはありません。エラーをケースバイケースで修正するか、Linux 用にコードを書き直す必要があります (あまり複雑でない場合)。
ただし、Windows 固有の API を無視すると、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
typedef ソースコード