序言

本文介紹一個C++如何調(diào)用C#開發(fā)的dll實例。

前言

C++編寫的程序為非托管代碼,C#編寫的程序為托管代碼。托管代碼雖然提供了其他開發(fā)平臺沒有的許多優(yōu)勢,但由于前期系統(tǒng)及歷史版本很多使用的是非托管代碼編寫的程序,所以CLR提供了一些機制,允許在應用程序中同時包含托管和非托管代碼。具體說分為以下三種:

  1. 托管代碼能調(diào)用DLL中的非托管函數(shù)。通過P/Invoke(Platform Invoke)機制調(diào)用DLL中的函數(shù),如Kernel32.dll等。

  2. 托管代碼可以使用現(xiàn)有COM組件(服務器)。許多公司都已經(jīng)實現(xiàn)了大量非托管COM組件。利用來自這些組件的類型庫,可創(chuàng)建一個托管程序集來描述COM組件。托管代碼可像訪問其他任何類型一樣訪問托管程序集中的類型。

  3. 非托管代碼可以使用托管類型(服務器)。許多現(xiàn)有的非托管代碼要求提供COM組件來確保代碼正確工作。使用托管代碼可以更簡單地實現(xiàn)這些組件,避免所有代碼都不得不和引用計數(shù)和接口打交道。比如C++調(diào)用C#開發(fā)的dll。

以上部分文字摘自《CLR via C#》,會比較難懂點。剛好工作中有通過C++調(diào)用C#開發(fā)的dll的經(jīng)驗,也就是上述第3點。所以想借此文記錄下開發(fā)的步驟和思路。后續(xù)有時間再把上述的1、2點補上,形成一個系列文章。

正文

1、用C#編寫dll

延伸閱讀

學習是年輕人改變自己的最好方式-Java培訓,做最負責任的教育,學習改變命運,軟件學習,再就業(yè),大學生如何就業(yè),幫大學生找到好工作,lphotoshop培訓,電腦培訓,電腦維修培訓,移動軟件開發(fā)培訓,網(wǎng)站設計培訓,網(wǎng)站建設培訓學習是年輕人改變自己的最好方式