原创 [預告] 12月9日下午 - MSDN中文網絡廣播:.NET 4.0 Interop新特性-Type Equivalency

12月9日下午我將在MSDN中文網絡廣播中主講.NET 4.0 CTP中Interop的新特性:Type Equivalency,又稱之爲NO PIA。 有興趣的朋友可以通過下面的鏈接登記並收聽此次網絡廣播: .NET 4.0中的新特性系

原创 詭異的C++ #define編譯錯誤

前幾天寫代碼的時候遇到了一個十分詭異的編譯錯誤。對於下面的代碼,你能夠發現問題在那裏嗎? 1: #define test(a, b, c) / 2: a; / 3:

原创 MSDN文檔的錯誤:關於UnmanagedType.LPStruct和UnmanagedType.Struct

在MarshalAsAttribute中,第一個參數類型是UnmanagedType枚舉,用以指定對應的非託管數據類型。在這個枚舉類型中,有兩個非常詭異的值,Unmanaged.LPStruct和UnmanagedType.Struct。

原创 位於上海的微軟服務器與開發工具事業部的Blog已經開張,歡迎大家訪問

微軟在上海的研發中心的正式名稱是服務器和開發工具事業部,主頁的地址是:http://www.microsoft.com/china/CRD/groups05.mspx 而Blog的地址是:http://blogs.msdn.com/stb

原创 什麼是System.__ComObject: 強類型RCW和弱類型RCW

大家在進行COM Interop編程的時候,不知道]是否會見到這樣的情況。通常,我們通過TlbImp.exe把一個類型庫(Type Library)轉換成Interop Assembly。比如在Type Library裏面有一個cocla

原创 使用.NET/CLR的Stress Log功能尋找問題

不知道各位使用.NET開發的朋友是否有遇到過一些非常奇怪的問題而不知道如何下手呢?這個時侯CLR本身提供的StressLog功能就非常有用了。這個StressLog可以在很多時候把CLR所做的事情記錄下來,比如,對於一個很簡單的最後拋出異

原创 .NET 4.0新功能:Corrupted State Exceptions

在.NET 4.0中引入了一個新功能:Corrupted State Exceptions。聽上去名字很神祕,實際上這個功能主要是限制對Exception的錯誤用法:捕獲AccessViolationException/SEHExcept

原创 MSDN中文網絡廣播預告:公共語言運行庫(CLR)開發系列課程(6):.NET中間語言(IL)入門 (Level 200)

這個星期三也就是5月19日下午2點半開始我將爲大家帶來CLR開發課程系列之六。這一次我打算講一些.NET比較本質的內容:Metadata和IL代碼。歡迎希望對.NET的運作機理和工作方式能夠有進一步深入瞭解的朋友收聽。本次講座的具體信息如

原创 如果一個程序跑10000次只失敗一次,你會怎麼調試?

CLR小組中存在着大量的迴歸測試,這些迴歸測試會定期執行來發現CLR中的Bug,Developer在Checkin之前,也需要執行這些測試的一部分(大概是10小時左右,如果全部跑的話估計要好幾天)。這些測試對於保證CLR的質量是至關重要的

原创 調試Bug的神兵利器:通過WinDbg條件斷點收集Log

前段時間花了幾天一直在用WinDbg調試一個比較棘手的Bug。這個Bug是C# Team那邊發現的,他們的Testcase跑大概10分鐘左右會出一個在CLR內部的ASSERT。比較難調試的主要原因在於ASSERT表明一個全局的數據結構出現

原创 .NET直接編譯成本地代碼:.NET Native架構簡介

這篇Blog好久沒有更新了。最近一直在忙.NET Native相關的事情(主要是MCG),但是又因爲保密的原因不能在Blog中提到。上個星期Build終於發佈(可惜沒有去成,team名額太少),我也終於可以談下.NET Native的一些

原创 Visual Studio Team System 2010 Architecture系列文章

微軟上海VS TeamArch小組的中文Blog上面最近開始了一個系列文章,主要翻譯Cameron Skinner的一系列介紹Visual Studio Team System 2010 Architecture CTP的一些新功能的Bl

原创 System.Runtime.InteropServices.GetHRForException的陷阱

從字面上看,GetHRForException函數的作用很簡單:得到Exception所對應的HRESULT的值。但是,GetHRForException還會做一件事情:設置當前線程的IErrorInfo使之指向該Exception(嚴格

原创 Vista上遠程管理Hyper-V服務器

因爲工作需要,我把自己的一臺機器裝上了Windows Server 2008並配置好了Hyper-V,用來Host我的一些虛擬機。但是我一般遠程訪問這臺服務器,管理虛擬機起來不太方便,特別是在虛擬機上還沒有安裝好Integration S

原创 【預告】1月6日下午14:30 CLR開發系列課程(3):COM Interop基礎 (Level 300)

1月6日下午14:30我將在MSDN中文網絡廣播中主講.NET中COM和COM Interop的相關基礎知識。有興趣的朋友可以通過下面的鏈接登記並收聽此次網絡廣播:  公共語言運行庫(CLR)開發系列課程(3):COM Interop基礎