寫這篇博文為了說明如何"託管"與'"非託管"互用問題。具體來講包括:如何在託管**中使用非託管**、如何在託管**中使用非託管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
using3-4.非託管**中呼叫託管dll、寫託管**。system;
using
system.componentmodel;
using
system.runtime.interopservices;
using
system.threading;
namespace
pinvoke
}[dllimport(
"user32.dll")]
private
static
extern
boolean messagebeep(uint32 beeptype);}}
前一篇博文談到clr宿主的時候,遇到過這個問題,託管assembly**如下:
using在非託管**中載入clr執行託管**,**如下:system;
namespace
net.mst.eighth.******assembly}}
//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 強迫自己沒有賴床 穿衣洗漱喝水穿鞋一氣呵成 原諒我不梳頭 把門一關 奔向學校 要發成績單了 我心裡那個緊張啊 不是緊張考得不好 我是緊張要是沒達...