台灣最大程式設計社群網站
線上人數
1985
 
會員總數:245964
討論主題:189547
歡迎您免費加入會員
討論區列表 >> C/C++ >> C++.dll Export給C#專案使用與給C++專案使用
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
C++.dll Export給C#專案使用與給C++專案使用
價值 : 10 QP  點閱數:1379 回應數:5
樓主

小兔斑比
初學者
60 10
160 18
發送站內信

捐贈 VP 給 小兔斑比
C++.dll Export給C#專案使用與給C++專案使用
公司有一個C++專案是要export給另一個C++專案以及C#專案使用
可是我怎麼改此C++專案都無法讓兩個專案同時共用一個C++DLL
C++專案能使用的,C#專案就不能使用,反之亦然
是兩者真的無法共用,還是說只是我沒找到方法?

麻煩各位前輩教導,謝謝

搜尋相關Tags的文章: [ C++ ] , [ DLL ] , [ C# ] ,
本篇文章發表於2016-06-06 13:18
1樓
回應

Raymond
檢舉此回應
2樓
作者回應

小兔斑比
捐贈 VP 給 小兔斑比 檢舉此回應
我已經寫出供C#使用的C++DLL了
只是想知道兩者有無共用的可能
因為在給C#使用的C++DLL中需定義 extern “c”
而C++中不能使用"c"的
因此才想詢問各位前輩有沒有更多可能?
不過還是謝謝Raymond的關注回覆
本篇文章回覆於2016-06-08 16:58
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
最有價值解答

Raymond
檢舉此回應
>因為在給C#使用的C++DLL中需定義 extern “c”

是. 這是為了解決 C++ name mangling 的問題.
http://stackoverflow.com/questions/8534917/export-dll-method-from-c-to-c-why-i-need-extern-c

如果不用 extern "c", exported function 必須用 mangled name.
http://stackoverflow.com/questions/4804494/p-invoking-function-via-a-mangled-name

>而C++中不能使用"c"的

請說明原因及例子.
本篇文章回覆於2016-06-08 20:42
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

小兔斑比
捐贈 VP 給 小兔斑比 檢舉此回應
就是我把C++ Function用 extern "c" 包起來之後就不能給C++本身呼叫了
本篇文章回覆於2016-07-20 11:10
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

Raymond
檢舉此回應
>就是我把C++ Function用 extern "c" 包起來之後就不能給C++本身呼叫了
不可能! extern "c" 包起來的除了函式定義, 也必須包括函式宣告.
本篇文章回覆於2016-07-20 21:54
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.