新建Asp.Net注意問題及其功能介紹
新建Asp.Net是通過語言的基礎上而來的,就是所謂的開發(fā)環(huán)境,編制生成的代碼稱為Asp.Net代碼。Asp.Net編譯器可以從源代碼中讀取相關信息,而Asp.Net運行庫又從元數(shù)據(jù)中獲得托管代碼的信息。
雨楓技術教程網(wǎng) 雨 楓技 術 教程 網(wǎng)雨楓技術教程網(wǎng) 眾所周知,asp.net是基于通用語言運行庫創(chuàng)建的,也就是所謂的托管執(zhí)行環(huán)境。生成的代碼稱為托管代碼。編譯器能夠從源代碼的描述中產(chǎn)生元數(shù)據(jù)信息,而運行庫又從元數(shù)據(jù)中獲得托管代碼的信息。而我們編寫的組件一般是在非托管環(huán)境下創(chuàng)建的,這些組件往往不包含元數(shù)據(jù)信息,那么我們怎么在托管代碼中使用這些元數(shù)據(jù)信息呢?
為了在托管環(huán)境中使用非托管代碼,我們首先必須手工為這些現(xiàn)有的組件產(chǎn)生元數(shù)據(jù)信息。新建Asp.Net必須有一種工具能夠產(chǎn)生元數(shù)據(jù)。能夠從某個地方獲得元數(shù)據(jù)。這個元數(shù)據(jù)的發(fā)源地就是類型庫,事實上,今天所有的組件都有一個類型庫。
這里為了說明如何產(chǎn)生元數(shù)據(jù)信息,我們不妨以Microsoft Agent組件為例進行說明。這個組件類似于Office的小助手,它能夠完成各種豐富多彩的人性化的動作,并且支持語音識別和語音合成。一般的操作系統(tǒng) 都默認安裝了這個組件,新建Asp.Net用戶該不會發(fā)愁沒有這個組件吧。如果你的系統(tǒng)刪除了這個組件,你可以http://microsoft.com/msagent/downloads.htm去下載。下面開始介紹如何在asp.net中使用非托管COM組件。
首先是創(chuàng)建元數(shù)據(jù)
Microsoft Agent控件默認是安裝在%systemroot%\msagent\目錄下,新建Asp.Net首先運行開始菜單中Visual Studio.NET Command Prompt(命令提示)菜單項。在這個目錄執(zhí)行下面的命令。
tlbimp agentctl.dll /out: agentctl_proxy.dll
通過這個命令我們可以創(chuàng)建一個包含元數(shù)據(jù)信息的代理文件agentctl_proxy.dll。注意這并不是一個真正的動態(tài)連接庫文件,而是一個裝配文件(Assembly),也就是我們非托管COM組件的代理。 #t#
也可以通過.NET框架提供的實用程序aximp.exe創(chuàng)建,命令行如下,新建Asp.Net這樣它會生成兩個文件,如下圖所示:注意AgentObjects.dll 和agentctl_proxy.dll文件是完全一樣的文件。C:\Program Files\Microsoft Visual Studio 9.0\VC>aximp %systemroot%\msagent\agentctl.dll