拖不託管是浮雲 飄過託管的邊界

2021-09-06 05:42:55 字數 2697 閱讀 2219

寫這篇博文為了說明如何"託管"與'"非託管"互用問題。具體來講包括:如何在託管**中使用非託管**、如何在託管**中使用非託管dll、如何在非託管**中使用託管dll以及託管**。直接給出最直接的描述---**。

1.託管**中使用非託管**

給出個可行示例,簡單的說明下下面這段**的功能--「灰度化」影象。

//

託管**呼叫非託管**

//debuglzq以前寫的

//unsafe{}中**為非託管**

private

void pointer_click(object

sender, eventargs e)

ptr += bmpdata.stride - bmpdata.width * 3

; }

}curbitmap.unlockbits(bmpdata);

mytimer.stop();

timebox.text = mytimer.duration.tostring("

####.##

") + "毫秒"

; invalidate();}}

為了使程式能正確執行,需要設定專案的屬性生成為:「允許不安全**」。

這樣程式就可正常執行,效果如下:

2.託管**中使用非託管dll

前面在講計時器的時候提到過,下面給出乙個完整可用的高效能計時器,順便給出呼叫非託管dll的示例。**如下:

using

system;

using

system.runtime.interopservices;

using

system.componentmodel;

using

system.threading;

//debuglzq

//這是使用的乙個計時器,拿這個來說明如何在託管**中使用非託管dll

namespace

gray

}//start the timer

public

void

start()

//stop the timer

public

void

stop()

//returns the duration of the timer (in milliseconds)

public

double

duration

}public

void

cleartimer()}}

用法很簡單:

private hiperftimer mytimer=new

hiperftimer();

mytimer.start();

mytimer.stop();

mytimer.duration

//wanted

再寫乙個例子

using

system;

using

system.componentmodel;

using

system.runtime.interopservices;

using

system.threading;

namespace

pinvoke

}[dllimport(

"user32.dll")]

private

static

extern

boolean messagebeep(uint32 beeptype);}}

3-4.非託管**中呼叫託管dll、寫託管**。

前一篇博文談到clr宿主的時候,遇到過這個問題,託管assembly**如下:

using

system;

namespace

net.mst.eighth.******assembly}}

在非託管**中載入clr執行託管**,**如下:

//c++工程中載入clr,執行託管**

#include "

stdafx.h

"#include

//這裡定義載入哪個版本的clr

#include #pragma comment(lib,"mscoree.lib")

//載入clr,從而執行託管**

void main(int argc, _tchar*argv)

程式執行結果如下:

文章旨在給出了一種「託管」--「非託管」互相呼叫的切實可行的方法,沒有什麼可圈可點的地方,請「牛人」勿噴擊debuglzq。當然,如果你覺得這篇博文對你有幫助,

到底什麼是託管,什麼是非託管的研究

託管 managed code 由公共語言執行庫環境 而不是直接由作業系統 執行的 託管 應用程式可以獲得公共語言執行庫服務,例如自動垃圾 執行庫型別檢查和安全支援等。這些服務幫助提供獨立於平台和語言的 統一的託管 應用程式行為。unmanaged code 非託管 在公共語言執行庫環境的外部,由作...

什麼是託管元資料?

什麼是託管元資料?託管元資料是一種允許管理員建立的垂直分級術語的集合,可以在文件庫和列表中作為欄使用,但是只在sharepoint 2010 server中支援。使用託管元資料,你可以建立分級結構的列表,將產品分組到不同的類別 建立類別的術語然後在其下建立產品術語 或是產品分組。你可以選擇這些術語是...

成績神馬的是浮雲對不對

成績神馬的是浮雲對不對 2012年01月13日 今天是13號 拿成績的聖神日子 早上鬧鐘在8點10準時響起 我竟然聽到了 在平時上學的日子根本聽不到 xd 強迫自己沒有賴床 穿衣洗漱喝水穿鞋一氣呵成 原諒我不梳頭 把門一關 奔向學校 要發成績單了 我心裡那個緊張啊 不是緊張考得不好 我是緊張要是沒達...