锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
]]>
涓銆乧#緇撴瀯浣?br />
1銆佸畾涔変笌C++瀵瑰簲鐨凜#緇撴瀯浣?/p>
鍦╟#涓殑緇撴瀯浣撲笉鑳藉畾涔夋寚閽堬紝涓嶈兘瀹氫箟瀛楃鏁扮粍錛屽彧鑳藉湪閲岄潰瀹氫箟瀛楃鏁扮粍鐨勫紩鐢ㄣ?
C++鐨勬秷鎭粨鏋勪綋濡備笅錛?
//娑堟伅鏍煎紡 4+16+4+4= 28涓瓧鑺?
struct cs_message
{
u32_t cmd_type;
char username[16];
u32_t dstID;
u32_t srcID;
};
C#瀹氫箟鐨勭粨鏋勪綋濡備笅:
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct my_message
{
public UInt32 cmd_type;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 16)]
public string username;
public UInt32 dstID;
public UInt32 srcID;
public my_message(string s)
{
cmd_type = 0;
username = s;
dstID = 0;
srcID = 0;
}
}
鍦–++鐨勫ご鏂囦歡瀹氫箟涓紝浣跨敤浜?#pragma pack 1 瀛楄妭鎸?瀵歸綈錛屾墍浠#鐨勭粨鏋勪綋涔熷繀欏昏鍔犱笂瀵瑰簲鐨勭壒
鎬э紝LayoutKind.Sequential灞炴ц緇撴瀯浣撳湪瀵煎嚭鍒伴潪鎵樼鍐呭瓨鏃舵寜鍑虹幇鐨勯『搴忎緷嬈″竷灞,鑰屽浜嶤++鐨?br />char鏁扮粍綾誨瀷錛孋#涓彲浠ョ洿鎺ヤ嬌鐢╯tring鏉ュ搴旓紝褰撶劧浜嗭紝涔熻鍔犱笂灝侀佺殑鐗規у拰闀垮害闄愬埗銆?
2銆佺粨鏋勪綋涓巄yte[]鐨勪簰鐩歌漿鎹?br />
瀹氫箟涓涓被錛岄噷闈㈡湁2涓柟娉曞幓瀹炵幇浜掕漿錛?br />
public class Converter
{
public Byte[] StructToBytes(Object structure)
{
Int32 size = Marshal.SizeOf(structure);
Console.WriteLine(size);
IntPtr buffer = Marshal.AllocHGlobal(size);
try
{
Marshal.StructureToPtr(structure, buffer, false);
Byte[] bytes = new Byte[size];
Marshal.Copy(buffer, bytes, 0, size);
return bytes;
}
finally
{
Marshal.FreeHGlobal(buffer);
}
}
public Object BytesToStruct(Byte[] bytes, Type strcutType)
{
Int32 size = Marshal.SizeOf(strcutType);
IntPtr buffer = Marshal.AllocHGlobal(size);
try
{
Marshal.Copy(bytes, 0, buffer, size);
return Marshal.PtrToStructure(buffer, strcutType);
}
finally
{
Marshal.FreeHGlobal(buffer);
}
}
}
3銆佹祴璇曠粨鏋滐細
static void Main(string[] args)
{
//瀹氫箟杞崲綾葷殑涓涓璞″茍鍒濆鍖?
Converter Convert = new Converter();
//瀹氫箟娑堟伅緇撴瀯浣?
my_message m;
//鍒濆鍖栨秷鎭粨鏋勪綋
m = new my_message("yanlina");
m.cmd_type = 1633837924;
m.srcID = 1633837924;
m.dstID = 1633837924;
//浣跨敤杞崲綾葷殑瀵硅薄鐨凷tructToBytes鏂規硶鎶妋緇撴瀯浣撹漿鎹㈡垚Byte
Byte[] message = Convert.StructToBytes(m);
//浣跨敤杞崲綾葷殑瀵硅薄鐨凚ytesToStruct鏂規硶鎶夿yte杞崲鎴恗緇撴瀯浣?
my_message n = (my_message)Convert.BytesToStruct(message, m.GetType());
//杈撳嚭嫻嬭瘯
Console.WriteLine(Encoding.ASCII.GetString(message));
Console.WriteLine(n.username);
}
緇撴瀯浣撶殑size鏄?8涓瓧鑺傚拰c++鐨勭粨鏋勪綋涓鏍鳳紝鍚屾椂鍙互灝嗙粨鏋勪綋鍜屽瓧鑺傛暟緇勪簰杞紝鏂逛究UDP鐨勫彂閫佸拰鎺ユ敹銆?/p>
鏈枃鏉ヨ嚜CSDN鍗氬錛岃漿杞借鏍囨槑鍑哄錛?br />http://blog.csdn.net/huxiangyang4/archive/2010/08/31/5853247.aspx
鍊間紶閫掞細浼犵殑鏄璞$殑鍊兼嫹璐濄?鍗沖嚱鏁板唴鍙傛暟瀵硅薄鏄皟鐢ㄦ椂浼犻掔殑瀵硅薄鐨勬爤涓璞$殑鎷瘋礉銆?
寮曠敤浼犻掞細浼犵殑鏄爤涓璞$殑鍦板潃銆?鍗沖嚱鏁板唴鍙傛暟瀵硅薄涓庤皟鐢ㄦ椂浼犻掔殑瀵硅薄瀹屽叏鏄悓涓鏍堜腑瀵硅薄銆?
鐜板湪鐢ㄤ緥瀛愭潵璇存槑浼犲艱窡浼犲湴鍧鐨勪笉鍚岋細
private void button2_Click(object sender, System.EventArgs e)
...{
StringBuilder strb1 = new StringBuilder();
StringBuilder strb2 = new StringBuilder();
Test1(strb1);
Test2(ref strb2);
string str1 = strb1.ToString(); //str1鍊?"A"
string str2 = strb2.ToString(); //str2鍊?"BC"
}
void Test1(StringBuilder strb)
...{
//strb鍜宻trb1鏄袱涓爤涓璞★紝浣嗘寚鍚戠浉鍚岀殑鍦板潃錛岃繖涓搷浣滄槸鏀瑰彉鍫嗕腑瀵硅薄
strb.Append("A");
//榪欓噷灝唖trb鎸囧悜涓涓柊鐨勫爢涓璞★紝鎵浠ュ悗闈㈢殑鎿嶄綔涓巗trb1鎸囧悜鐨勬爤涓璞℃棤鍏?br /> strb = new StringBuilder("B");
strb.Append("C");
}
void Test2(ref StringBuilder strb)
...{
//榪欓噷鐨剆trb鍜宻trb2鏄悓涓涓爤涓璞★紝鎵浠ユ敼鍙榮trb鐨勫間嬌鍏舵寚鍚戝彟涓涓璞′篃絳変簬鏀瑰彉strb2
strb = new StringBuilder("B");
strb.Append("C");
}
甯哥敤鐨勭粯鍥炬柟寮忥紝浣嗘槸鍘嬬緝綆楁硶澶樊錛屽ぇ鍥懼帇緙╁け鐪熶弗閲嶏紝騫朵笖鏀寔鍥劇墖綾誨瀷澶皯,鏀寔bmp.
涓浜涚粯鍥炬柟娉曞弬鑰冨彟涓鏂囩珷:鍥劇墖闀傜┖綆楁硶闆嗗悎
CxImage:
鏄竴涓紑婧愬簱錛屽姛鑳藉己澶э紝鍏跺畼鏂逛富欏?a >http://www.xdp.it/cximage/
甯哥敤鐨?縐?bmp,gif,png,jpg,ico
鍏朵粬綾誨瀷:tif,tga,pcx,wbmp,wmf,jp2,jpc,pgx,pnm,ras,jbg,mng,ska,raw
CxImage鍘嬬緝綆楁硶杈冨ソ錛岀粯鍥鵑熷害蹇?4400*3000宸﹀彸鍍忕礌鍥劇墖錛屽閲?M宸﹀彸錛屽帇緙╁埌50*50錛屽湪蹇熸媺鍔ㄥ浘鐗囷紝騫剁Щ鍔ㄦ椂錛屼竴鐐逛篃涓嶅崱銆?/p>
VS7.1鐜閰嶇疆
lib璺緞:鍦ㄥ伐紼嬮厤緗?>榪炴帴鍣?>甯歌->闄勫姞鐩綍搴?br /> 鍔犺澆lib:鍦ㄥ伐紼嬮厤緗?>榪炴帴鍣?>杈撳叆->闄勫姞渚濊禆欏?
cximage.lib
jasper.lib
jbig.lib
Jpeg.lib
png.lib
Tiff.lib
zlib.lib
mng.lib
libdcr.lib
澶存枃浠惰礬寰?鍦ㄥ伐紼嬮厤緗甤/c++->甯歌->闄勫姞鍖呭惈鐩綍
浣跨敤錛氬彧闇瑕佸寘鍚?xImage.h"
CxImage image;
image.Load()錛孋reateFromHBITMAP()絳夊嚱鏁板鍏ュ浘鐗?br /> image.Stretch(HDC,x,y,width,height);
GDI+:
鍚屾牱鍔熻兘寮哄ぇ錛屾敮鎸侊細bmp,jpg,gif,tiff,png.鍥劇墖杞崲涔嬪墠鐨勭畻娉曞簲璇ユ槸鏈濂界殑錛岀敤澶у浘鍘誨帇緙╋紝鍥劇墖鏁堟灉鏄庢樉瑕佹瘮鍓嶄袱鑰呭ソ銆?br />浣嗘槸鐢誨ぇ鍥炬椂錛岄熷害澶參.姣斿浠ヤ笂4400*3000鐨勫浘鐗囷紝鍘嬬緝鍒?0*50,鐢誨浘鏃墮棿绔熺劧鏄?.15縐掞紝濡傛灉鏀懼湪蹇熸洿鏂幫紝鎴栬呯Щ鍔ㄧ殑澶勭悊鏃訛紝鏄庢樉浼氬歡榪?
浣跨敤鍓嶏紝闇瑕佸湪APP鏂囦歡涓垵浣垮寲GDI+
DWORD m_gdiplusToken;
CGameApp::InitInstance()
{
Gdiplus::GdiplusStartupInput gdiplusStartupInput;
Gdiplus::GdiplusStartup(&m_gdiplusToken, &gdiplusStartupInput, NULL);
}
int CGameApp::ExistInstance()
{
Gdiplus::GdiplusShutdown(m_gdiplusToken);
return 0;
}
Bitmap * pBmp = Bitmap::FromHBITMAP() 鎴栬?Bitmap::FromFile() 絳夊嚱鏁板鍏ュ浘鐗?br /> Graphics gr(HDC);
gr.DrawImage(pBmp,x,y,Width,Height);
鎬葷粨錛?/p>
1銆佷竴鑸粯鍥劇敤GDI
2銆侀渶瑕佷笉鍚岀被鍨嬬殑鍥劇墖鏍煎紡錛屽茍涓旇蹇熺粯鍥劇殑鐢–xImage
3銆侀渶瑕佷笉鍚岀被鍨嬬殑鍥劇墖鏍煎紡錛屼笖瑕侀珮璐ㄩ噺鍥劇墖鏁堟灉鐨勭敤GDI+
鏈枃鏉ヨ嚜錛?a >http://blog.csdn.net/xuweiqun/archive/2009/07/20/4363627.aspx
棣栧厛璇磋浠涔堢被鍨嬫槸鍊肩被鍨嬶紝渚嬪錛歩nt銆乫loat銆乥ool涔嬬被鐨勫熀紜綾誨瀷錛屼互鍙婄敤struct瀹氫箟 鐨勭被鍨嬶紝濡傦細DateTime銆傞櫎姝ゅ錛屽 string錛屾暟緇勶紝浠ュ強鐢╟lass瀹氫箟鐨勭被鍨嬬瓑閮芥槸寮曠敤綾誨瀷銆傚浜嶤#鏉ヨ錛屽緢闅劇綏鍒楀嚭鎵鏈夌被鍨嬭繘琛屼竴涓鍒嗗埆錛岃繖闇瑕佽嚜宸卞湪緙栫爜榪囩▼涓繘琛屽垎鏋愭葷粨銆?
涓轟簡鏇村ソ鍦拌鏄庝袱縐嶇被鍨嬩箣闂寸殑鍖哄埆錛屽熺敤濡備笅鐨勮〃鏍兼潵璇存槑:
鍊肩被鍨?寮曠敤綾誨瀷
鍐呭瓨鍒嗛厤鍦扮偣 鍒嗛厤鍦ㄦ爤涓?鍒嗛厤鍦ㄥ爢涓?
鏁堢巼 鏁堢巼楂橈紝涓嶉渶瑕佸湴鍧杞崲 鏁堢巼浣庯紝闇瑕佽繘琛屽湴鍧杞崲
鍐呭瓨鍥炴敹 浣跨敤瀹屽悗錛岀珛鍗沖洖鏀?浣跨敤瀹屽悗錛屼笉鏄珛鍗沖洖鏀訛紝絳夊緟GC鍥炴敹
璧嬪兼搷浣?榪涜澶嶅埗錛屽垱寤轟竴涓悓鍊兼柊瀵硅薄 鍙槸瀵瑰師鏈夊璞$殑寮曠敤
鍑芥暟鍙傛暟涓庤繑鍥炲?鏄璞$殑澶嶅埗 鏄師鏈夊璞$殑寮曠敤錛屽茍涓嶄駭鐢熸柊鐨勫璞?
綾誨瀷鎵╁睍 涓嶆槗鎵╁睍 瀹規槗鎵╁睍錛屾柟渚夸笌綾誨瀷鎵╁睍
閫氳繃濡備笂緇嗚嚧瀵規瘮錛屽ぇ瀹跺浜庡肩被鍨嬪拰寮曠敤綾誨瀷鏈変釜娓呮鐨勬蹇點?/p>
涓嶈繃錛屾棤璁烘槸瀵逛簬鍊肩被鍨嬭繕鏄紩鐢ㄧ被鍨嬫潵璇達紝瀵逛簬鍏朵綔涓哄嚱鏁板弬鏁版垨鑰呰繑鍥炲肩殑鏃跺欙紝閮芥槸瀹規槗鐘敊璇殑鍦版柟銆?/p>
瀵逛簬鍊肩被鍨嬫潵璇達紝褰撳叾 浣滀負鍑芥暟鍙傛暟鐨勬椂鍊欙紝甯屾湜鍦ㄥ嚱鏁頒腑琚慨鏀癸紝閭d箞鐩存帴濡備笅鎿嶄綔鏄笉鑳借淇敼鐨?
public void Increment( int i )
{
銆 i++;
}
瑕佹兂鍦ㄥ嚱鏁頒腑瀵逛紶榪涘幓鐨勫弬鏁板仛鐪熸鐨勪慨鏀癸紝闇瑕佸熷姪浜巖ef榪欎釜鍏抽敭瀛楋紝閭d箞姝g‘鐨勫艦寮忓涓?
public void Increment( ref int i )
{
銆i++;
}
涔熷氨鏄錛屽鏋滈渶瑕佸湪鍑芥暟涓鍊肩被鍨嬪弬鏁拌繘琛屼慨鏀癸紝闇瑕佺敤ref鎴栬卭ut榪涜鏍囪瘑鎵嶈兘鐪熸瀹炵幇銆?/p>
鑰屽浜庡紩鐢?綾誨瀷鏉ヨ錛屽綋鍏朵綔涓哄嚱鏁板弬鏁扮殑鏃跺欙紝瀹冩墍閬囧埌鐨勬儏鍐墊伆鎭頒笌鍊肩被鍨嬬浉鍙嶏紝鍗充笉甯屾湜鍦ㄥ嚱鏁頒腑琚慨鏀癸紝涓句緥濡備笅:
public void AddValue( MyType typValue )
{
銆typValue.Count = typValue.Count + 15;
}
鐢變簬瀵逛簬寮曠敤綾誨瀷瀵硅薄鏉ヨ錛屽叾鐨勮祴鍊兼搷浣滃彧鏄鍘熸湁瀵硅薄鐨勫紩鐢紝鍥犳鍦ㄥ嚱鏁板鍏朵慨鏀癸紝瀹為檯涓婃槸鐩存帴淇敼浜嗗師鏈夊璞℃暟鎹紝榪欐槸寰堝 鎯呭喌涓嶅笇鏈涘彂鐢熺殑錛堣繖閲屼緥濡傚鏁扮粍鎴栬匘ataTable鎿嶄綔榪欑被錛夈?/p>
涓轟簡闃叉榪欑浜嬪彂鐢燂紝闇瑕佺粰姝ょ被鍨嬫彁渚沜lone鍑芥暟銆備緥濡傚 浜庡涓婄殑綾誨瀷錛屽彲浠ュ叆涓嬪疄鐜?:
public class MyType:ICloneable
{
銆private int nCount = 0;
銆public int Count
銆{
銆銆set{ nCount = value;}
銆銆get{ return nCount;}
銆}
銆public MyType()
銆{}
銆public MyType( int Value)
銆{
銆銆nCount = Value;
銆}
銆#region ICloneable Members
銆public object Clone()
銆{
銆銆// TODO: Add MyType.Clone implementation
銆銆return new MyType( nCount );
銆}
銆#endregion
}
銆 閭d箞鍦ㄨ皟鐢ㄧ殑鏃跺欙紝鐢ㄥ綋鍓嶇殑瀵硅薄鐨刢lone浣滀負鍙傛暟鍗沖彲銆?/p>
涓嶈繃瀵逛簬寮曠敤綾誨瀷鏉ヨ錛屾彁渚涗竴涓猚lone鍑芥暟涓嶆槸涓 浠跺鏄撶殑浜嬫儏錛屽挨鍏跺嚭鐜板紩鐢ㄧ被鍨嬪祵濂楃殑鏃跺欙紝鎵浠ヨ鍘誨疄鐜頒竴涓畬鍏╟lone鍔熻兘鏄歡寰堣垂浜嬪張涓嶈濂界殑媧伙紝榪欎篃灝辨槸鍦ㄨ鍧涗腑甯歌鐨勬繁copy鍜屾祬copy 鐨勯棶棰樸傝瘽铏藉姝わ紝濡傛灉瀵逛簬鍓嶉潰鎵璇寸殑鏈変釜澶ф浜嗚В錛岀浉淇″疄鐜頒篃涓嶆槸涓嶅彲鑳姐?/p>
鍦–#涓紝灝ゅ叾鑷繁瀹氫箟綾誨瀷鐨勬椂鍊欙紝甯稿父鐢變簬鏄敤 struct鏉ュ畾涔夎繕鏄敤class鏉ュ畾涔夛紝鍗蟲槸瀹氫箟涓涓肩被鍨嬭繕鏄竴涓紩鐢ㄧ被鍨嬪憿銆傚湪榪欐湰涔︿笂緇欎簡鍑犱釜鍒ゅ畾鏉′歡錛屽鏋滃涓嬪嚑鐐歸兘婊¤凍鐨勮瘽錛屽緩璁敤 struct鏉ュ畾涔変負鍊肩被鍨嬶紝鍚﹀垯鐢╟lass瀹氫箟涓哄紩鐢ㄧ被鍨嬨?/p>
<!--[if !supportLists]-->1錛?<!--[endif]-->榪欎釜綾誨瀷鏄惁涓昏涓轟簡鏁版嵁瀛樺偍錛?br /><!--[if !supportLists]-->2錛?<!--[endif]-->鏄惁鍙氳繃灞炴ф潵璁塊棶瀵硅薄鐨勬暟鎹垚鍛橈紱
<!--[if !supportLists]-->3錛?<!--[endif]-->榪欎釜綾誨瀷鏄惁涓嶄細鏈夊瓙綾誨瀷錛?br /><!--[if !supportLists]-->4錛?<!--[endif]-->鍦ㄧ▼搴忓鐞嗙殑鏃跺欎笉浼氭妸榪欎釜綾誨瀷瀵硅薄閫氳繃澶氭佹潵澶勭悊銆?
錛?錛塗he Graphics class provides methods for drawing lines, curves, figures, images, and text. A Graphics object stores attributes of the display device and attributes of the items to be drawn.銆恗sdn銆?/p>
Graphics鏄竴涓猟evice context鍜屼綘鐨刣rawing conetent涔嬮棿鐨勪竴涓腑浠嬨傚畠瀛樺偍浜哾evice context鐨勭浉鍏沖睘鎬э紝浠ュ強drawing content鐨勫睘鎬с傝繖鏍鳳紝瀹冨氨鑳界敤鑷繁鐨勬柟娉曟妸drawing content“鏄犲皠”鍒癲evice content 涔嬩笂銆?/p>
錛?錛塆DI+鐨勬牳蹇冩槸Graphics綾伙紝鍖呭惈浜嗘樉紺恒佺粯鍥劇瓑鍔熻兘銆傚畠鎻愪緵浜嗗洓涓瀯閫犲嚱鏁幫細
Graphics::Graphics(Image*)
Graphics::Graphics(HDC)
Graphics::Graphics(HDC,HANDLE)
Graphics::Graphics(HWND,BOOL)
鏋勯犲嚱鏁?浠巌mage瀵硅薄鍒涘緩涓涓狦raphics綾匯傝繖縐嶆柟寮忓厑璁鎬綘鍦ㄦ墦寮鏌愬紶錛屾垨鑰呯敓鎴愭煇寮犱綅鍥句箣鍚庯紝搴旂敤Grapgics鐨勬柟娉曞鏀逛綅鍥捐繘琛屾搷浣溿?/p>
鏋勯犲嚱鏁?浠庝竴涓紶緇熺殑HDC鑾峰彇涓涓狦raphics瀵硅薄錛屾妸浼犵粺鐨勫湪HDC瀹屾垚鐨勬搷浣滄帴鎵嬭繃鏉ャ備篃灝辨槸褰撹鐢葷洿綰匡紝鏇茬嚎錛屽浘褰㈢瓑鏃訛紝閲囩敤榪欑鏋勯犲嚱鏁般?/p>
鍚庨潰涓ょ鏋勯犲嚱鏁拌繖閲屼笉璇翠簡錛?/p>
錛?錛夊鏋滆鑰呮湁GDI緙栫▼緇忛獙鐨勮瘽錛屽簲璇ヤ細鑱旀兂璧稢DC::CreateCompatibleDC鍜孋Bitmap::
CreateCompatibleBitmap鍚э紵鍐嶅垪涓綠raphics涓湁浠h〃鎬х殑鐢ㄤ簬緇樺浘鐨勬垚鍛樺嚱鏁幫細
Graphics::DrawArc(Pen*,INT,INT,INT,INT,REAL,REAL)
Graphics::DrawBeziers(Pen*,Point*,INT)
Graphics::DrawClosedCurve(Pen*,Point*,INT)
Graphics::DrawCurve(Pen*,Point*,INT)
Graphics::DrawEllipse(Pen*,Rect&)
Graphics::DrawImage(Image*,RectF&)
Graphics::DrawLine(Pen*,Point&,Point&)
Graphics::DrawPie(Pen*,Rect&,REAL,REAL)
Graphics::DrawPolygon(Pen*,Point*,INT*)
Graphics::DrawRectangle(Pen*,Rect&)
鏄笉鏄潪甯歌薄CDC錛熶粠榪欓噷澶у涔熻兘鐚滃嚭涓鐐笹raphics綾誨拰CDC綾葷殑寮傚悓鍚э紒綆鍗曠殑璇達紝Graphics鐨勫眰嬈℃洿楂樹竴浜涳紝灝佽鐨勬洿濂姐?/p>
2 GDI+鐨勫嚑涓壒鐐癸細
錛?錛変紶緇熺殑GDI緙栫▼鏈鐥涜嫤鐨勬槸浠涔堬紵鏄笉鍋滅殑CreateObject錛孲eleteObject錛孌eleteObject——浠g爜綣佺悙錛屼竴涓嶅皬蹇冭繕浼氬唴瀛樻硠闇?#8230;…鐜板湪GDI+緇撴潫浜嗚繖涓鍒囷紝灝卞嚟榪欎竴涓悊鐢憋紝涔熻凍澶熸垜浠漿鍚慓DI+浜嗭紝鍛靛懙銆備粠涓婇潰鐨勫嚑涓垚鍛樺嚱鏁板彲浠ョ湅鍑烘潵錛屾瘡涓粯鍥懼姩浣滈兘鎸囧畾浜嗙敾絎斻佸埛瀛愭垨鑰匢mage錛屽畬鍏ㄦ姏寮冧簡SelectObject鐨勬蹇點?/p>
錛?錛塆DI+閲岄潰鐨勯鑹叉洿鍔犱赴瀵岋紝鍏ㄩ潰鏀寔32浣嶈壊錛屼粠Color綾葷殑鏋勯犲嚱鏁板氨鍙互鐪嬪嚭鏉ワ細
Color::Color(BYTE a, BYTE r, BYTE g, BYTE b);鍏朵腑a灝辨槸閫忔槑搴︺?/p>
錛?錛塆DI+閲岀殑鎵鏈夊嚱鏁伴兘鍙帴鍙桿nicode瀛楃涓詫紝緙栧啓浠g爜鐨勬椂鍊欓渶瑕佹敞鎰忚繖涓鐐廣?/p>
鏈枃鏉ヨ嚜CSDN鍗氬錛岃漿杞借鏍囨槑鍑哄錛?a >http://blog.csdn.net/keyouan2008/archive/2010/08/13/5809519.aspx