C CLI 被忽視的整合技術

2021-08-29 03:42:22 字數 821 閱讀 3887

十幾行**,就使乙個重要的舊系統元件,完全融入了基於.net的新系統中!事情是這樣的:

幸好有c++/cli,只用了兩個小時開發除錯,十幾行**就搞定!主要工作就是重新用c++/cli的語法宣告 dll 中的函式,或曰所謂託管非託管混合程式設計,例如:

原來的 dll 函式宣告為:_declspec(dllimport) bool queryinit(const

char* lpszdatafilepath = null);

用c++/cli重新宣告如下:

[dllimport("query.dll", entrypoint="queryinit")]

extern "c" bool queryinit([marshalas(unmanagedtype::lpstr)] string^ lpszdatafilepath);

然後就可以直接呼叫:bool ok = queryinit("d:/data/");包裝一下編譯為cli的dll就可以給c#用

不需要web service

等「重型」的包裝技術,c++/cli提供了在特定情形下最直接簡便的選擇;當然這種整合技術主要面向功能的整合,對面向資料,面向服務的整合而言沒有必要,因為在那些情形下有多種方案可供選擇

由於並非專業的 .net 開發者,或許有更直接的方法可以在 c# 中呼叫標準 win32 dll,懇請各位看官賜教

[今天又看了一下,,發現c#也可以:

using system.runtime.interopservices;

public class win32

public class helloworld

}

]

被忽視的 partition 演算法

如果你學習過演算法,那麼肯定聽說過快速排序的大名,但是對於快速排序中用到的 partition 演算法,你了解的夠多嗎?或許是快速排序太過於光芒四射,使得我們往往會忽視掉同樣重要的 partition 演算法。partition 可不只用在快速排序中,還可以用於 selection algorith...

被忽視的IT金飯碗

談高校學子對軟體測試認識的三大誤區 軟體測試是保障軟體質量的重要環節,企業對於軟體質量意識的逐步增強,促使國內軟體測試人員的地位不斷提公升。但中國高等教育往往落後企業實際發展3 5年,所以在高校學子心中,重開發 輕測試的思想依然嚴重。許多優秀的畢業生甚至對測試工作存在偏見,致使軟體測試人才缺口進一步...

被忽視的 partition 演算法

如果你學習過演算法,那麼肯定聽說過快速排序的大名,但是對於快速排序中用到的 partition 演算法,你了解的夠多嗎?或許是快速排序太過於光芒四射,使得我們往往會忽視掉同樣重要的 partition 演算法。partition 可不只用在快速排序中,還可以用於 selection algorith...