C++动态库的导出函数中用到了D3DCOLOR_XRGB(255, 255, 0),C#该如何写呢

C++动态库的导出函数中用到了D3DCOLOR_XRGB(255, 255, 0),C#该怎么写呢~
C++动态库的导出函数中用到了D3DCOLOR_XRGB(255, 255, 0),定义段代码为:
#define D3DCOLOR_ARGB(a,r,g,b) \
    ((D3DCOLOR)((((a)&0xff)<<24)|(((r)&0xff)<<16)|(((g)&0xff)<<8)|((b)&0xff)))
#define D3DCOLOR_RGBA(r,g,b,a) D3DCOLOR_ARGB(a,r,g,b)
#define D3DCOLOR_XRGB(r,g,b)   D3DCOLOR_ARGB(0xff,r,g,b)

#define D3DCOLOR_XYUV(y,u,v)   D3DCOLOR_ARGB(0xff,y,u,v)
#define D3DCOLOR_AYUV(a,y,u,v) D3DCOLOR_ARGB(a,y,u,v)
求问在C#中应该怎么使用D3DCOLOR_XRGB(255, 255, 0),感谢~
------解决思路----------------------
宏定义一般是自己用c#再写一遍,不过你这个可以直接用 System.Drawing.Color.FromArgb(255, 255, 0).ToArgb() ,和那个宏定义一个作用
------解决思路----------------------
引用:
Quote: 引用:

宏定义一般是自己用c#再写一遍,不过你这个可以直接用 System.Drawing.Color.FromArgb(255, 255, 0).ToArgb() ,和那个宏定义一个作用
代码少贴了两句:
#ifndef D3DCOLOR_DEFINED
typedef DWORD D3DCOLOR;
#define D3DCOLOR_DEFINED
#endif

// maps unsigned 8 bits/channel to D3DCOLOR
#define D3DCOLOR_ARGB(a,r,g,b) \((D3DCOLOR)((((a)&0xff)<<24)
------解决思路----------------------
(((r)&0xff)<<16)
------解决思路----------------------
(((g)&0xff)<<8)
------解决思路----------------------
((b)&0xff)))
#define D3DCOLOR_RGBA(r,g,b,a) D3DCOLOR_ARGB(a,r,g,b)
#define D3DCOLOR_XRGB(r,g,b)   D3DCOLOR_ARGB(0xff,r,g,b)

#define D3DCOLOR_XYUV(y,u,v)   D3DCOLOR_ARGB(0xff,y,u,v)
#define D3DCOLOR_AYUV(a,y,u,v) D3DCOLOR_ARGB(a,y,u,v)

导出函数定义是这样字的:
DLL_EXPORT int WP_IPC_SetShowText(int screenId, char* text, DWORD color, int position); 
System.Drawing.Color.FromArgb(255, 255, 0).ToArgb() 类型好像不满足吧?


D3DCOLOR是定义为DWORD的,DWORD是c#的uint,那个ToArgb()返回的是int,非要严格点,转uint也一样