VC++,VC#,VB.NET中文版编码规范不断完善中

你可以在以下链接下载到中文版的编码规范:由于时间紧
【菜科解读】
网友编程高手蒋里京同学已将VC++, VC#, VB.NET 编码规范 (微软一站式示例代码库) 翻译成中文。
你可以在以下链接下载到中文版的编码规范:
由于时间紧迫,此版本的编码规范尚还没有根据那些技术意见做出相应调整。
望您能谅解。
本文档为一站式示例代码库项目组所使用的C++ 以及 .NET 编码规范 。
该规范源自于产品开发过程中的经验,并在不断完善。
如果您发现一些最佳实践或者话题并没有涵盖在本文档中,请联系我们一站式示例代码库项目组 ,以不断充实完善本文档。
任何指导准则都可能会众口难调。
本规范的目的在于帮助社区开发者提高开发效率,减少代码中可能出现的bug,并增强代码的可维护性。
万事开头难,采纳一个不熟悉的规范可能在初期会有一些棘手和困扰,但是这些不适应很快便会消失,它所带来的好处和优势很快便会显现,特别是在当您接手他人代码时。
VC++,VC#,VB.NET,中文版,编码,规范,不断,完VC++语言实现MFC剪贴板操作实例代码
下面的代码呈现了怎能将扩展图元文档复制到剪贴板:if(OpenClipboard());{EmptyClipboard();//创建图元文档DCCMetaFileDC * cDC = new CMetaFileDC();cDC->CreateEnhanced(GetDC(),NULL,NULL,"the_name");//调用绘图例程//关闭CMetafileDC并获得它的句柄HENHMETAFILE handle = cDC->CloseEnhanced();//复制到剪贴板SetClipBoardData(CF_ENHMETAFILE,handle);CloseClipboard();//删除dcdelete cDC;}下面的代码演示了从剪贴板获得图元文档并将其绘制到client DC上:if(OpenClipboard()){//获得剪贴板数据HENMETAFILE handle = (HENMETAFILE)GetClipboardData(CF_ENHMETAFILE);//呈现CClientDC dc(this);CRect client(0,0,200,200);dc.PlayMetaFile(handle,client);//关闭剪贴板CloseClipboard();}三、位图的操作位图的操作稍微复杂一点,下面那个例子呈现了怎能在剪贴板保存位图:if(OpenClipboard()){EmptyClipboard();CBitmap * junk = new CBitmap();CClientDC cdc(this);CDC dc;dc.CreateCompatibleDC( CRect client(0,0,200,200);junk->CreateCompatibleBitmap(&cdc,client.Width(),client.Height());dc.SelectObject(junk);DrawImage(&dc,CString("Bitmap"));//复制数据到剪贴板SetClipboardData(CF_BITMAP,junk->m_hObject);CloseClipboard();delete junk;}下面的代码呈现了怎能从剪贴板上获得位图数据:if(OpenClipboard()){//获得剪贴板数据HBITMAP handle = (HBITMAP)GetClipboardData(CF_BITMAP);CBitmap * bm = CBitmap::FromHandle(handle);CClientDC cdc(this);CDC dc;dc.CreateCompatibleDC( dc.SelectObject(bm);cdc.BitBlt(0,0,200,200,&dc,0,0,SRCCOPY);CloseClipboard();}四、设置并应用自定义各式应用RegisterClipboardFormat()参数,没出国疑问复制和粘贴任何你需求的数据TYPE。
比如咱们有以下唯一的数据TYPE:struct MyFormatDatalong val1;int val2;};咱们要把它复制到剪贴板,没出国疑问应用如下的代码:UINT format = RegisterClipBoardFormat("MY_CUSTOM_FORMAT");if(OpenClipboard()){MyFormatData data;data.val1 = 100;data.val2 = 200;HGLOBAL clipbuffer;EmptyClipboard();clipbuffer = GlobalAlloc(GMEM_DDESHARE, sizeof(MyFormatData));MyFormatData * buffer = (MyFormat数据*)GlobalLock(clipbuffer);//保存到内存*buffer = data;//保存到剪贴板GlobalUnlock(clipbuffer);SetClipboardData(format,clipbuffer);CloseClipboard();}读取数据应用以下代码:UINT format = RegisterClipboardFormat("MY_CUSTOM_FORMAT");MyFormatData data;if(Openclipboard()){HANDLE hData =GetClipboardData(format);MyFormatData * buffer = (MyFormatData*)GlobalLock(hData);data = *buffer;GlobalUnlock(hData);CloseClipboard();}五、感知剪贴板内容的改变经过win界面消息没出国疑问感知剪贴板内容也许除了改变,代码如下://In your initialization code call:SetClipboardViewer(); //将咱们的程式添加到剪贴板观察链//In your message map add:ON_MESSAGE(WM_DRAWCLIPBOARD, OnClipChange) //添加Message handle//Which is declared as:afx_msg void OnClipChange();Finally implement:void CDetectClipboardChangeDlg::OnClipChange(){CTime time = CTime::GetCurrentTime();SetDlgItemText(IDC_CHANGED_DATE,time.Format("%a, %b %d, %Y -- %H:%M:%S"));DisplayClipboardText(); VC++,语言,实现,MFC,剪贴板,操作,实例,代码,
使用ILDASM.EXE工具,判断一个.NET程序是使用VB.NET语言写的
d:\Mesh\study\VBAppDetect>dir /bCSharpApp.exeVBApp.exed:\Mesh\study\VBAppDetect>ildasm /tok /byt CSharpApp.exe /out=CSharpApp_manifest.txtd:\Mesh\study\VBAppDetect>type CSharpApp_manifest.txt | find /i "Microsoft.VisualBasic"啥都没有,呵呵d:\Mesh\study\VBAppDetect>ildasm /tok /byt VBApp.exe /out=VBApp_manifest.txtd:\Mesh\study\VBAppDetect>type VBApp_manifest.txt | find /i "Microsoft.VisualBasic"一大堆引用Microsoft.VisualBasic的方法、属性等,说明使用了VB.NET里面的东西了。
.assembly extern /*23000002*/ Microsoft.VisualBasicextends [Microsoft.VisualBasic/*23000002*/]Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase/*01000001*/IL_0002: /* 28 | (0A)000002 */ call bool [Microsoft.VisualBasic/*23000002*/]Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase/*01000001*/::get_UseCompatibleTextRendering() /* 0A000002 */IL_0018: /* 6F | (0A)000004 */ callvirt instance void [Microsoft.VisualBasic/*23000002*/]Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase/*01000001*/::Run(string[]) /* 0A000004 */IL_0003: /* 28 | (0A)000005 */ call instance void [Microsoft.VisualBasic/*23000002*/]Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase/*01000001*/::.ctor(valuetype [Microsoft.VisualBasic/*23000002*/]Microsoft.VisualBasic.ApplicationServices.AuthenticationMode/*01000016*/) /* 0A000005 */IL_0036: /* 6F | (0A)00000A */ callvirt instance void [Microsoft.VisualBasic/*23000002*/]Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase/*01000001*/::set_IsSingleInstance(bool) /* 0A00000A */...d:\Mesh\study\VBAppDetect> 使用,ILDASM.EXE,工具,判断,一个,.NET,程序