《Windows程序設計基礎-基于.NET平臺》課件-CORE-08_第1頁
《Windows程序設計基礎-基于.NET平臺》課件-CORE-08_第2頁
《Windows程序設計基礎-基于.NET平臺》課件-CORE-08_第3頁
《Windows程序設計基礎-基于.NET平臺》課件-CORE-08_第4頁
《Windows程序設計基礎-基于.NET平臺》課件-CORE-08_第5頁
已閱讀5頁,還剩10頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1非控代碼的調用第八章2教學目標了解平臺調用服務。理解.NET中的COM調用。

3非控代碼非控代碼的定義指不被.NET運行環境管理或控制的代碼非控代碼的類型平臺調用服務:允許.NET代碼訪問現有的非控動態鏈接庫(DLL)中的函數、結構,甚至回調COM互操作性:在.NET中使用COM組件,以及在COM應用程序中使用.NET組件4動態鏈接庫的調用PInvoke:PlatformInvocationServicesPInvoke調用專指對動態鏈接庫的調用5動態鏈接庫的調用Pinvoke語法[DllImport(……)]<訪問修飾符>staticextern[返回類型][函數名](參數列表)DllImport是屬性:DllImportAttribute例:[DllImport(“user32.DLL”)]導入了user32.dll這樣第一個系統動態鏈接庫可以聲明要使用這個鏈接庫中的函數注意:返回值和參數列表要同受控代碼的聲明一一對應聲明的函數名稱并非一定是動態鏈接庫中實際的函授名稱6動態鏈接庫的調用DllImport的參數:必須的參數:庫文件可選的常用參數:EntryPoint:指出實際的函數名CharSet,SetLastError…etc。7動態鏈接庫的調用例:在Windows的核心動態鏈接庫User32.DLL中有一個MessageBoxA的函數,用于顯示一個對話框首先用DllImport導入User32.DLL[DllImport(“User32.DLL”)]接著描述函數信息[private|public|protected|internal]staticexternintMessageBoxA(intHwnd,stringmsg,stringtitle,inttype);8PInvoke調用例子(1)調用user32.dll中的MessageBox原型:int

MessageBox(

HWND

hWnd,

LPCTSTR

lpText, LPCTSTR

lpCaption,

UINT

uType);HWND是Int型;LPCTSTR是字符串;INT是無符號整型;9PInvoke調用例子(1)調用user32.dll中的MessageBox聲明: 聲明時候所有的類型需匹配對應的語言類型,對c#應該是:

HWND聲明為Int; LPCTSTR聲明為string; UINT聲明為int。10PInvoke調用例子(1)調用User32.dll中的MessageBoxMessageBox對應的c#聲明為:[DllImport(“user32.dll”)]publicstaticexternintMessageBox(

inthwnd,

stringmsg,

stringtitle,

inttype);usingSystem;usingSystem.Runtime.InteropServices;namespaceS2306T09_01{classProgram{[DllImport(“user32.DLL")]publicstaticexternintMessageBoxA(inthwnd,stringmsg,stringtitle,inttype);staticvoidMain(string[]args){MessageBoxA(0,"P-Invoke","P9",1);}}}例:Chapter08_0112PInvoke調用例子(2)使用EntryPoint改變調用名MessageBox對應的c#聲明為:[DllImport(“user32.dll”,EntryPoint=“MessageBox”)]publicstaticexternintShowMessage( inthwnd, stringmsg, stringtitle, inttype);13COM調用tlbimp工具的使用如:tlbimpexcel.exe/out:excel.dll14COM調用利用Excel的com接口操作excel文檔(讀/寫)ApplicationClass:代表整個excel對象_Workbook

溫馨提示

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

評論

0/150

提交評論