私はC言語の新機能です。他の人が書いたソースコードをWindowsにコンパイルしたものがあります。windowsとlinuxでコンパイルする
linuxでコンパイルしようとした後、linuxはDWORD、WORD、UINT32をサポートしていないのでエラーが出ます。私は例えば6つのファイルを持っています。 A.h、A.c、B.h、B.c、C.h、C.c.これらのキーワードはすべてのファイルにあります。
私は2つの解決策を考えています。 #defineまたはtypedefのほうが良いでしょう。
1)
typedef unsigned long DWORD;
typedef unsigned short WORD;
typedef unsigned int UNINT32;
2)私は、これらの宣言を置く必要があり、私は疑問に思って第二部については
#define DWORD unsigned long
#define WORD unsigned short
#define UINT32 unsigned int
。彼らはヘッダーファイルに入るか、ソースファイルに入れなければなりませんか?
たとえば、ヘッダーファイルまたはソースファイルでこれを行う必要がありますか?あなたは解決策自分を発見した上記の提案のための
#ifdef WIN32
/* windows stuff */
#else
typedef unsigned long DWORD;
typedef unsigned short WORD;
typedef unsigned int UNINT32;
#endif
多くのおかげで、
遅いタイピングのために私が得たもの –
クロスプラットフォームのコンパイル性を維持しようとしているのであれば、それをwindows.hという名前のファイルに入れて、それはあなたがそれらの宣言を得るウィンドウ上のファイルだからです。 –
マシンがlong = 8(64ビットマシン)の場合、typedef unsigned int DWORDを使用します。 – Antarus