【语言-c#】C++中的宏定义在C#中如何表示

C++宏定义 

#define MAKEWORD(a, b)      ((WORD)(((BYTE)(((DWORD_PTR)(a)) & 0xff)) | ((WORD)((BYTE)(((DWORD_PTR)(b)) & 0xff))) << 8))
#define MAKELONG(a, b)      ((LONG)(((WORD)(((DWORD_PTR)(a)) & 0xffff)) | ((DWORD)((WORD)(((DWORD_PTR)(b)) & 0xffff))) << 16))
#define LOWORD(l)           ((WORD)(((DWORD_PTR)(l)) & 0xffff))
#define HIWORD(l)           ((WORD)((((DWORD_PTR)(l)) >> 16) & 0xffff))
#define LOBYTE(w)           ((BYTE)(((DWORD_PTR)(w)) & 0xff))
#define HIBYTE(w)           ((BYTE)((((DWORD_PTR)(w)) >> 8) & 0xff))

#define GET_WHEEL_DELTA_WPARAM(wParam)  ((short)HIWORD(wParam))
#define GET_KEYSTATE_WPARAM(wParam)     (LOWORD(wParam))
#define GET_NCHITTEST_WPARAM(wParam)    ((short)LOWORD(wParam))
#define GET_XBUTTON_WPARAM(wParam)      (HIWORD(wParam))

C#中的泛型

namespace System
{
    public static class MinWinDef
    {
        internal static Func<object, object, object> MAKEWORD = (a, b) => ((ushort)(((byte)(((ulong)(a)) & 0xff)) | ((ushort)((byte)(((ulong)(b)) & 0xff))) << 8));
        internal static Func<object, object, object> MAKELONG = (a, b) => ((ulong)(((ushort)(((ulong)(a)) & 0xff)) | ((ushort)((byte)(((ulong)(b)) & 0xff))) << 8));
        internal static Func<object, object> LOWORD = l => ((ushort)(((ulong)(l)) & 0xffff));
        internal static Func<object, object> HIWORD = (l) => ((ushort)((((ulong)(l)) >> 16) & 0xffff));
        internal static Func<object, object> LOBYTE = (w) => ((byte)(((ulong)(w)) & 0xff));
        internal static Func<object, object> HIBYTE = (w) => ((byte)((((ulong)(w)) >> 8) & 0xff));

        internal static Func<object, object> GET_WHEEL_DELTA_WPARAM = (wParam) => ((short)HIWORD(wParam));
        internal static Func<object, object> GET_KEYSTATE_WPARAM = (wParam) => (LOWORD(wParam));
        internal static Func<object, object> GET_NCHITTEST_WPARAM = (wParam) => ((short)LOWORD(wParam));
        internal static Func<object, object> GET_XBUTTON_WPARAM = (wParam) => (HIWORD(wParam));
    }
}

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值