→ QQ29:請問一下 因為跟^ 奇怪的C++不熟 是這種微軟創的C++才可以嗎 11/22 16:48
→ QQ29:才可以 用C++ 呼叫 C# 11/22 16:49
→ diabloevagto:應該都可以互call吧 11/22 17:25
→ angleevil:linux絕對無法call c# 11/22 17:26
→ QQ29:driver layer有可能可以呼叫C# dll嗎? 11/22 18:01
推 Bencrie:Linux不是有 Mono 可以跑 C# 嗎 ? 11/22 19:43
→ QQ29:喔我是 MS平台的 只是有人問說 driver不能呼叫C# dll嗎? 11/22 20:52
→ QQ29:雖然我覺得鐵定不能 但我也沒證據反駁他 才來此請教各位@@ 11/22 20:53
推 su31o4gj83:如果是 C++ 直接呼叫 C# dll, 我猜是不行 11/22 21:48
→ su31o4gj83:但如果你用 MS 的 C++/CLI, 是可以呼叫 C# 的東西 11/22 21:49
→ su31o4gj83:所以 driver (C++) <--> C++/CLI <--> C# 是可以行的 11/22 21:52
→ su31o4gj83:但這種方法很醜很難用, 要看看有沒有更有效率的方法 11/22 21:53
→ priv:明明我貼那篇標題就是call manange dll from native 11/22 21:53
→ priv:不要你猜不行好嗎... 11/22 21:54
→ priv:driver is another story 11/22 21:54
→ priv:從driver層就算要call一般的native user dll也是不行啊 11/22 21:54
→ priv:必須要從user mode註冊kernel event 11/22 21:56
→ priv:dll收到event之後再做事這種間接的方法 11/22 21:56
推 elfkiller:非driver可行 而且比C#呼叫C++容易許多 driver不知 11/22 21:58
→ priv:再者C++ call C++/CLI根本和C++ call C#沒什麼差別 11/22 21:59
→ priv:一樣都是native call managed,建議su31o4gj83重整一下觀念 11/22 22:00
推 diabloevagto:推priv神! 11/22 22:05
→ su31o4gj83:C++ <--> C++/CLI 有讓人誤解了 11/22 22:08
→ su31o4gj83:應該是 C++/CLI <--> C# 就好 11/22 22:08
→ su31o4gj83:我這裡的 C++ 指的是不含 /clr, 標準的 C++ 11/22 22:11
→ su31o4gj83:標準的 C++ 應該是認不得 C++/CLI or C# 11/22 22:19
→ su31o4gj83:C++/CLI 不是 C++ 的延伸, 是另一種語言 11/22 22:24
→ su31o4gj83:所以並不會有什麼 C++ call C++/CLI 或是 C++ call C# 11/22 22:28
→ su31o4gj83:永遠都是 C++/CLI 呼叫 C# 11/22 22:29
→ su31o4gj83:C++ <--> C++/CLI 是個誤會 11/22 22:29
→ su31o4gj83:我並不是指 C++ 直接呼叫 C++/CLI 11/22 22:30
→ su31o4gj83:而是 C++/CLI 可以向 C++ 註冊一個 function pointer 11/22 22:30
→ su31o4gj83:已達到 C++ 呼叫 C++/CLI 的效果 11/22 22:32
→ su31o4gj83:以 11/22 22:32
→ QQ29:謝謝各位 目前我是driver想直接呼叫已經存在build好的C# dll~ 11/22 23:41
→ QQ29:我會試著消化這些文章 看看有沒有機會做到.... 11/22 23:41
→ su31o4gj83:基本上你一定會用到 C++/CLI 11/23 00:25
→ su31o4gj83:只是看是要把 C++/CLI 當作 C++ 與 C# 溝通的橋樑 11/23 00:26
→ su31o4gj83:還是直接把 C++ 專案整個轉成 C++/CLI 11/23 00:27
→ QQ29:可是我C++是寫driver耶 我是跟driver不熟 但C++/CLI 能寫 11/23 00:28
→ QQ29:driver嗎@@ 11/23 00:28
→ su31o4gj83:使用 C++/CLI 可能會遇到 MS run-time lib 衝突的問題 11/23 00:30
→ su31o4gj83:因為要使用 C++/CLI 必須加上 /clr 11/23 00:31
→ su31o4gj83:但 /clr 會限制使用 /MD 11/23 00:31
→ su31o4gj83:另外轉移到 C++/CLI 可能會遇到奇奇怪怪的問題 11/23 00:35
→ su31o4gj83:我也不知道能不能寫 driver, 我只能把我知道的分享一下 11/23 00:37
→ su31o4gj83:我去睡了, 晚安 11/23 00:37
推 ericinttu:to QQ29: 在你的認知裡, C 或 C++ 來寫driver, 有需要依 11/23 00:38
→ ericinttu: 賴到 C# 寫好的工具? 11/23 00:39
→ QQ29:基於某些因素~ C#的某API 我不知道她實作, 但又必須要使用 11/23 00:40
→ QQ29:在driver layer, 有人直接說應該可以 我無法證明不行 11/23 00:40
→ QQ29:畢竟我也不熟悉這些東西..... 11/23 00:40
→ QQ29:現在問題就是driver可否呼叫C#已經build好的dll...需要時間 11/23 00:41
→ QQ29:測試....沒有這方面的知識跟經驗orz 11/23 00:42
推 VictorTom:要不要說說看是哪個/些API? 11/23 01:00
推 dk3208:假如是kernel mode driver基本上應該無法直接呼叫manage的 11/23 01:10
→ dk3208:dll,不過如果是user mode driver說不定有機會 11/23 01:11
→ priv:不然原po就把實際情形講清楚 11/23 10:06
→ priv:並不是所有的driver都可以UMDF的 11/23 10:07
→ priv:基本上kernel mode不能用user mode api是註定的 11/23 10:08
→ priv:不管你是managed或native的api都一樣 11/23 10:08
→ priv:不能用的東西想破頭也沒用,就是要轉一個思考方向 11/23 10:09