WinAPI で:
typedef unsigned long DWORD;
DWORD、WORD ... はコンピューターの基本的なデータ型だと思いますが、int、unsigned long に関係なく...アセンブリで最終的に DWORD に変換されますが、ここで unsigned long に変換する必要があるのはなぜですか? 定義なしで DWORD を直接使用することはできませんか?
DWORD は定義されているものです (アセンブリで特定の幅への自動変換はありません)。この typedef が必要なのは、DWORD が使用されている場合、WinAPI インターフェイスはすべて unsigned long で定義されているためです。IOW、API を操作するには、この定義が必要です。
あなたの他の質問に答えるために。この答えはノーです。DWORD は定義なしでは使用できません。コンパイラの組み込み型ではありません。
DWORD の定義は Win32 API 用に修正されています: http://msdn.microsoft.com/en-us/library/aa383751(VS.85).aspx
Windows API および x86 命令セットに基づくアセンブリ言語では、DWORD は 32 ビット サイズの変数を指定します。はい、通常は同じサイズです。
DWORD
コア言語の一部ではないため、定義せずに C++ で型を使用することはできません。の型定義はDWORD
、コンパイラとシステム アーキテクチャに応じて調整する必要がある場合があります。どうやら、あなたの設定では、タイプunsigned long
は 32 ビットなので、DWORD は として定義されていunsigned long
ます。