2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩6頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、一、一、C#中調用中調用OCX控件控件調用OCX控件的步驟:1、在系統(tǒng)中注冊該ocx控件,命令:regsvr32.exe控件位置(加u參數(shù)是取消注冊)2、在.的工具箱中添加該控件,拖到fm中去就可以了。不用工具箱的話,自己手工添加,需要注意一個問題,就是要用Aximp.exe來包裝一下ocx控件的類,然后再程序中引用生成的dll就可以了。aximp[options]file.dll|file.ocxThefollowingcommgen

2、eratesMediaPlayer.dllAxMediaPlayer.dllftheMediaPlayercontrolmsdxm.ocx.aximpc:systemrootsystem32msdxm.ocxActiveX控件導入程序將ActiveX控件的COM類型庫中的類型定義轉換為Windows窗體控件。Windows窗體只能承載Windows窗體控件,即從Control派生的類。Aximp.exe生成可承載于Windows窗體上的

3、ActiveX控件的包裝類。這使您得以使用可應用于其他Windows窗體控件的同一設計時支持和編程方法論。若要承載ActiveX控件,必須生成從AxHost派生的包裝控件。此包裝控件包含基礎ActiveX控件的一個實例。它知道如何與ActiveX控件通信,但它顯示為Windows窗體控件。這個生成的控件承載ActiveX控件并將其屬性、方法和事件公開為生成控件的屬性、方法和事件。如果不包裝一下直接用,會出現(xiàn)災難性錯誤。上面已經(jīng)說明了原因

4、。在項目中引用生成的ax開頭的dll,在窗體代碼中增加:聲明一個公有的控件對象:publicAxISPICRECLib.AxISPICRECAxISPICREC在InitializeComponent()方法內(nèi)初始化控件:AxISPICREC=newAxISPICRECLib.AxISPICREC()必須new對象,否則窗體設計器出問題((ponentModel.ISupptInitialize)(this.AxISPICREC)).B

5、eginInit()初始化開始this.Controls.Add(this.AxISPICREC)添加控件((ponentModel.ISupptInitialize)(this.AxISPICREC)).EndInit()this.AxISPICREC.OcxState=((System.Windows.Fms.AxHost.State)(resources.GetObject(“AxISPICREC.OcxState“)))設計控件

6、狀態(tài)如果遇到“正試圖在os加載程序鎖內(nèi)執(zhí)行托管代碼”這個錯誤,請設置“調試”“異?!薄啊癕anagedDebuggingAssistants“中勾掉“LoaderLock“就可以了。具體的可以看ms的文章::msdn2.enuslibrary8ccdh774(VS.80).aspx三、Re:C#Re:C#中調用中調用OCXOCX控件控件C#DllImpt的用法大家在實際工作學習C#的時候,可能會問:為什么我們要為一些已經(jīng)存在的功能(比如

7、Windows中的一些功能,C中已經(jīng)編寫好的一些方法)要重新編寫代碼,C#有沒有方法可以直接都用這些原本已經(jīng)存在的功能呢?答案是肯定的,大家可以通過C#中的DllImpt直接調用這些功能。DllImpt所在的名字空間usingSystem.Runtime.InteropServicesMSDN中對DllImptAttribute的解釋是這樣的:可將該屬性應用于方法。DllImptAttribute屬性提供對從非托管DLL導出的函數(shù)進行調

8、用所必需的信息。作為最低要求,必須提供包含入口點的DLL的名稱。DllImpt屬性定義如下:namespaceSystem.Runtime.InteropServices[AttributeUsage(AttributeTargets.Method)]publicclassDllImptAttribute:System.AttributepublicDllImptAttribute(stringdllName)...publicCall

9、ingConventionCallingConventionpublicSetSetpublicstringEntryPointpublicboolExactSpellingpublicboolPreserveSigpublicboolSetLastErrpublicstringValueget...說明:1、DllImpt只能放置在方法聲明上。2、DllImpt具有單個定位參數(shù):指定包含被導入方法的dll名稱的dllName參數(shù)。3、

10、DllImpt具有五個命名參數(shù):a、CallingConvention參數(shù)指示入口點的調用約定。如果未指定CallingConvention,則使用默認值CallingConvention.Winapi。b、Set參數(shù)指示用在入口點中的字符集。如果未指定Set,則使用默認值Set.Auto。c、EntryPoint參數(shù)給出dll中入口點的名稱。如果未指定EntryPoint,則使用方法本身的名稱。d、ExactSpelling參數(shù)指示E

11、ntryPoint是否必須與指示的入口點的拼寫完全匹配。如果未指定ExactSpelling,則使用默認值false。e、PreserveSig參數(shù)指示方法的簽名應當被保留還是被轉換。當簽名被轉換時,它被轉換為一個具有HRESULT返回值和該返回值的一個名為retval的附加輸出參數(shù)的簽名。如果未指定PreserveSig,則使用默認值true。f、SetLastErr參數(shù)指示方法是否保留Win32“上一錯誤“。如果未指定SetLast

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論