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

下載本文檔

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

文檔簡介

1、一、一、C#中調(diào)用中調(diào)用OCX控件控件調(diào)用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控件導(dǎo)入程序?qū)ctiveX控件的COM類型庫中的類型定義轉(zhuǎn)換為Windows窗體控件。Windows窗體只能承載Windows窗體控件,即從Control派生的類。Aximp.exe生成可承載于Windows窗體上的

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

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

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

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

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

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

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

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

溫馨提示

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

評論

0/150

提交評論