il

    1熱度

    3回答

    我很困惑。在我讀過的一些文章中,PE是一個彙編,IL代碼存儲在PE中。 在其他人中,我讀過PE有一個關聯的程序集清單和IL代碼存儲在PE中。在一些文章中,我已經在彙編中讀取了IL存儲,並且在PE文件的CLR頭部分中存儲了用於指示PE文件是.NET可執行文件的信息。 PE文件和.NET程序集是否相同? IL代碼存儲在哪裏?

    1熱度

    1回答

    我不知道正確的方式來搜索這個問題,但這是我做了很多事情,並想弄清楚,如果我一直默默地潛水我的代碼。是這樣的: Int32 x = 5; Int32 y = 7; Int32 z = x+y; Console.Write(z.ToString()); 與此相同: Int32 x = 5; Int32 y = 7; Console.Write((x+y).ToString());

    0熱度

    1回答

    所以我是C#中的一名相當中級的程序員,最近我剛剛癡迷於文件大小和創建可用的最小文件。爲此,我意識到使用MSIL進行更簡單的程序可以減少很多尺寸。 所以,我試圖將以下 創建一個簡單的下載。易於管理。下載我的文件並將它們保存在temp中並運行它們。管理得到它的工作和1,5kb大小,非常有用! 現在,在這樣做後,我想......爲什麼寫文件時,我可以簡單地使用反射和運行他們必須使用磁盤? 這就是問題的走

    5熱度

    4回答

    我想分析.Net程序集與C#,VB.NET或其他語言無關。 我知道Roslyn和NRefactory,但他們似乎只能在C#源代碼級別上工作? CodePlex上還有一個「Common Compiler Infrastructure: Code Model and AST API」項目,聲稱它「支持以獨立於語言的結構化形式表示代碼塊的分層對象模型」,該聲音完全符合我的需求。 但是,我無法找到任何有用

    1熱度

    1回答

    我正在使用Sigil創建一個DynamicMethod並希望看到生成的IL。 我以前從未與DynamicMethods合作過,所以也許有一個非常明顯的答案,但到目前爲止我還沒有發現任何東西。 這是similar question,但它很舊,我不知道鏈接的工具是否適用於VS2013 - 我想也許有更新的東西可用。 將生成的方法存儲在程序集中並將其寫入磁盤可能有效,但這在開發過程中非常麻煩。順便說一下

    2熱度

    1回答

    我正在使用RemotingLite庫(see at github),並且存在Proxy類工廠的問題。 簡而言之,問題在於生成用於返回像用戶定義結構這樣的對象的代碼。 這裏的原代碼的一部分: ... mIL.Emit(OpCodes.Ldloc, resultLB.LocalIndex); //load the result array mIL.Emit(OpCodes.Ldc_I4, 0);

    12熱度

    2回答

    由於Xamarin.iOS在運行時不支持代碼生成,爲什麼Compile()和DynamicInvoke()會按預期工作? 例如,下面的代碼正常工作: var lambda = Expression.Lambda( Expression.Add( Expression.Constant(1), Expression.Constant(

    2熱度

    1回答

    我完全新的IL,但我知道MoveNext應該Current之前被調用,可以說,我們有這樣的foreach語句: foreach (var i in Enumerable.Empty<string>()) { } 如果我們看一下產生IL我們會看到,目前實際上是第一個叫: IL_0014: br.s IL_001f IL_0016: ldloc.1 IL_0017: callvirt

    6熱度

    1回答

    我正在使用Mono.Cecil來重寫某些程序集。例如給定一個帶有字符串字段的泛型類。我想要將代碼生成到寫入此字段的此類的方法中。 這是代碼實現的是: var origInstanceField = type.Fields.First(fld => fld.Name.Equals("_original")); InsertBeforeReturn(instanceMethod.Body, new[

    2熱度

    1回答

    約束 當我編譯下面的代碼: type Class1<'T when 'T : unmanaged> = class end type Class2<'T> = class end 在IL它看起來像這樣: .class auto ansi serializable nested public Class1`1<T> extends [mscorlib]System.Obj