當前位置:首頁 » 編程軟體 » net動態編譯

net動態編譯

發布時間: 2022-04-10 23:48:48

⑴ VB.NET 2008 動態編譯,在RichTextBox1 中填入代碼,點擊Button1運行該代碼,在Textbox中顯示結果

添加引用MicrosoftScriptControl

ImportsMSScriptControl
PublicClassForm1
.ScriptControl
PrivateSubForm1_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load
ScripObj.Language="VBScript"
EndSub

PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
Try

ScripObj.AddCode(RichTextBox1.Text)
ScripObj.Run("a",TextBox1)

CatchexAsException
MsgBox(ex.Message)
EndTry
EndSub
EndClass

'在文本框中輸入的函數
suba(obj)
dima,b
a=40:b=30
ifa>bthen
obj.text="A>B"
else
obj.text="A<B"
endif
endsub

⑵ .net是動態編譯還是靜態編譯該如何解決

------解決方案-------------------------------------------------------- 生成時不同的語言使用不同的編譯器進行一次編譯,成為IL代碼。 IL代碼通過JIT動態編譯成為機器語言。 ------解決方案-------------------------------------------------------- ------解決方案-------------------------------------------------------- visual c++.net可以/CLR ------解決方案-------------------------------------------------------- 可以有動態和靜態的說。 ------解決方案-------------------------------------------------------- 大致有兩種情形,動態和靜態: 1. 一般情況下是JIT (Just in time)。CLR在執行方法的時候會調用一個Stub,這個Stub如過函數沒有被Jit則指向JIT函數,執行則會被自動JIT,然後Patch返回地址,返回之後直接執行JIT之後的本地代碼,如果已經JIT,則指向JIT後的代碼 2. 如果Assembly已經被NGEN過,這種情況下方法的Stub直接指向NGEN之後的代碼,這個代碼已經被Prejit過,可以直接調用而無需JIT參與 ------解決方案--------------------------------------------------------

⑶ asp.net 網站 不需要重新編譯發布,動態擴展功能

做好插件介面,把每個新的功能當做插件來做。

⑷ VS2008 C#.net做的動態網站怎麼打包編譯啊,要上傳到空間上去發布應該怎麼做啊(空間是配置好的)

點擊「生成」菜單——選擇「發布」,然後選擇一個發布路徑。

待發布成功以後,你將發布目錄里的全部文件使用 FTP 上傳就可以了。

如果你有管理許可權,直接向伺服器發布也是可以的,不過不建議這樣做,這樣安全性能不高。

如果有資料庫,得先以附加或還原方式添加資料庫先。。。

⑸ .NET Frame work編譯機制(二次編譯)

C++和.Net程序採用了兩種不同的編譯方式。通常一個C++編寫的程序,都是一次編譯成二進制的代碼,在相應的操作系統平台上直接執行即可。而.Net程序採用兩次編譯的方式,用C#,VB.Net等語言寫成的程序被編譯成IL代碼,通過CLR在運行的時候JIT編譯成為本地二進制代碼。
MFC和WinForm很多設計上的不同從根本上說,都是因為編譯模式帶來的不同。因此,在仔細探討MFC和WinForm之前,有必要細細體會一下不同編譯方式帶來的改變。
考慮一段代碼,它需要在不同的編譯環境下生成不同的代碼,或者是為了減少代碼編寫量用一些替換方式取代類似的代碼。在C++中利用預編譯和宏來解決這些事情。MFC框架中,更是大量使用宏來進行核心功能的設計。但是宏只是一種巧妙的減少輸入代碼量的方式,本質上和手寫輸入一些代碼並無區別(也許不夠嚴密吧),它並不能在程序運行的時候動態支持代碼的插入和改變,因為此時它已經編譯完成了。而二次編譯則不同,你可以將它的第一次編譯看成是通常一次編譯程序的預編譯期,只是這個預編譯更為的強大,它可以編譯生成信息更為豐富的元數據。並且,只要在JIT執行前動態插入代碼,利用反射等手段,就可以將已經編譯好的程序的行為在某種程度上進行改變,其動態性能得到了本質上的改變。
因此,在MFC和WinForm中,我們可以看到兩者在動態性能,安全性和效率方面都有很大的不同,總結一下,都可以歸結到這不同的編譯模式上來。在以後的日誌中,都可以看到這些區別的

⑹ net是動態編譯還是靜態編譯

靜態編譯與動態編譯的區別: 1、動態編譯的可執行文件需要附帶一個的動態鏈接庫,在執行時,需要調用其對應動態鏈接庫中的命令。 所以其優點一方面是縮小了執行文件本身的體積,另一方面是加快了編譯速度,節省了系統資源。 缺點一是哪怕是很簡

⑺ .net 編譯後.aspx頁面上的伺服器端代碼(如:<%response.write("dd")%>)會發生變化嗎

.NET的頁面是將代碼和界面分離的,所以編譯後只是將代碼頁面也就是.cs的頁面進行封裝,而.aspx的頁面是不做任何操作的,所以你在.aspx頁面上做的伺服器端代碼,是可以看見和修改的。

⑻ 軟體採用.net C#開發,不想讓人輕松破解核心邏輯及授權驗證代碼,DLL也不想被人隨意調用,有什麼辦法嗎

首先,我來介紹一下發布出去的DLL所面臨的風險:
一、直接引用
二、反編譯
三、反射
如果DLL一點措施都不做的話,上面任意一種都可以達到破解目的的。

然後,通常網上能搜到如下的保護方式,但真心的來說,用處不大,當然對小白破解者增加了難度。
一、混淆類的工具(如Dotfuscator,但是可以通過ILSpy、Reflector等反編譯哦,直接COPY代碼也能運行)
二、加密類的工具(如MaxToCode,網上有相應的破解教程)
三、加殼類的工具(如Sixxpack,網上有相應的破解教程)
四、強簽名(簽名只是防止項目中的某一個DLL被篡改了,不能防止反編譯或反射的哦)

說了那麼多,難道沒有相對靠譜的方式了嗎?
最後,我們進入正題
上面那些工具的目的歸結出來大約完成兩個目的,一是不能看,二是不能調,當然,我們也是實現這兩個目的,只是手段不同。
一、不能看:.NET DLL可以包含託管堆代碼(可以被反編譯的)與非託管堆代碼(不能被反編譯,要反編譯也是更高層次的了,不在討范圍內),我們將核心邏輯代碼置於非托堆代碼中,由託管堆代碼提供介面供外部調用,調用時將非託管代碼通過.NET動態編譯特性編譯後返回執行結果。這樣就保證了不能看。
二、不能調:我們在非託管代碼中加入驗證調用者來源功能,判斷調用者的HASH值是不是與在非託管代碼中約定的HASH值(發布時需要提前生成相關引用者的HASH值存於非託管代碼,最後生成非託管代碼的DLL放於安裝包中)一致,如一致則通過執行返回結果,不一致則返回空。這樣就解決了非合法來源不能調的問題。

更多參考:http://www.cnblogs.com/dengxi/p/5750170.html

熱點內容
c語言5常量 發布:2024-04-27 02:38:49 瀏覽:990
源碼怎麼搭建 發布:2024-04-27 02:33:44 瀏覽:96
java獲取參數 發布:2024-04-27 02:22:21 瀏覽:501
unixlinuxwindows 發布:2024-04-27 02:10:55 瀏覽:445
nginx禁止ip訪問網站 發布:2024-04-27 02:05:43 瀏覽:845
webrtc伺服器搭建哪家價格低 發布:2024-04-27 01:30:08 瀏覽:140
oracle資料庫無法啟動 發布:2024-04-27 01:29:20 瀏覽:613
倪萍超級訪問 發布:2024-04-27 01:23:29 瀏覽:705
java集合循環 發布:2024-04-27 01:17:18 瀏覽:593
解壓喪屍片 發布:2024-04-27 01:02:28 瀏覽:370