這篇文章將會經過一個簡單例子,來演示如何用VS來編譯ilasm,這個應該也仍是有些實際用處的,也方便喜歡研究ilasm的朋友。 編程
首先第一步,咱們創建一個C++空項目(沒錯,是C++空項目,對VS而言,VC++是一種自定義項目,它最接近咱們的需求)。 工具
接下來咱們右鍵點這個新建的項目,選擇「工具生成順序」,而後把那一堆C++工具全都選掉,只留下自定義生成工具就好了。 spa
好 這樣咱們的項目就編譯不了C++了。 命令行
接下來是重點,從新在VS中打開項目文件,而後右鍵點擊「自定義生成規則」 code
而後咱們新建一個規則文件,用來編譯il文件。 htm
新建一個規則文件以後新建規則,到這都很容易,就不用細說了。 blog
新建規則稍微有些複雜了,首先咱們來參考一下ILASM的文檔:http://msdn.microsoft.com/zh-cn/library/496e4ekx(VS.80).aspx ci
我這裏只是爲了演示,沒有把太多的ilasm編譯選項作成屬性 開發
填好後一路肯定就好了。能夠在項目中改變自定義屬性來切換exe和dll:
附上MSIL的helloworld以供你們驗證:
- // HelloWorld.il
- // This is our first IL program!
- .assembly extern mscorlib {
- }
- .assembly HelloWorld {
- .ver 1:0:1:0
- }
- .module HelloWorld.exe
- .method privatescope static void Main() cil managed {
- .maxstack 1
- .entrypoint
- ldstr "Hello World"
- call void [mscorlib]System.Console::WriteLine(string)
- ret
- }
附上整個項目壓縮包:
http://files.cnblogs.com/winter-cn/ilasm.rar