質問: 現在とあるプログラムのDLLを作成しており、DLL内からWin32 APiを取り除こうとしています。 それに伴い、これまでAPI内のクラスやマクロを使用していた場所を置き換える必要が出てきました。 その途中で、マクロのLOWORD HIWORDの置き換えで困っています。 元々の処理では、本体のプログラムから送られてきたUINT型の値からLOWORD,HIWORDマクロで二つの値を取り出していました。 ちなみに本体のプログラムはWindowsAPIを引き続き使用しており、UINTはunsigned int型に置き換えて値を取得しています。 本体のプログラムはいじることができないので、DLLのプログラム内でLOWORD,HIWORDマクロの置き換えは可能なのでしょうか?
回答: LOWORD、HIWORDは、たんに32ビットワード(DWORD)の下位側16ビットワード、上位側16ビットワードです LOWORD = UINT&0xffff; HIWORD = UINT>>16; という関係なんで、それで置き換えればいいです