[問題] 如何在C code裡include C++的class

看板C_and_CPP作者 (American Dream)時間16年前 (2009/11/07 18:30), 編輯推噓10(10013)
留言23則, 12人參與, 最新討論串1/2 (看更多)
自己寫了一個C++程式,已經測試過, 但是學長要求要把我寫的C++整合到C裡面, 我寫的C++都是用OO去寫,還用了stl, 我試著在class用extern "C"包起來,再寫個簡單的C,把c++的header檔引進來 但compile一下就掛了 請問有相關的資料可以參考嗎? 或者是要把所有的class改寫成struct? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.165.129.212

11/07 18:31, , 1F
怎麼掛? 純C就不只把class改成struct了 連function都要抽出
11/07 18:31, 1F

11/07 18:32, , 2F
輸出成 library 作 link 比較簡單
11/07 18:32, 2F

11/07 18:44, , 3F
叫你學長不要鬧了,叫他上來,我跟他開示一下..
11/07 18:44, 3F

11/07 18:44, , 4F
用VC就可以製作LIB嗎? 還是要另外製作
11/07 18:44, 4F

11/07 18:45, , 5F
我學長只會寫C...,他直覺絕得可以整合 ORZ
11/07 18:45, 5F

11/07 18:48, , 6F
腦殘的學長
11/07 18:48, 6F

11/07 18:48, , 7F
可以整合阿... 只是「非常麻煩」....
11/07 18:48, 7F

11/07 18:49, , 8F
所以你還是叫你學長上來,我跟他開示一下
11/07 18:49, 8F

11/07 18:53, , 9F
看來只有靜態函式庫這條路了,可以在三天內搞定
11/07 18:53, 9F

11/07 19:50, , 10F
直覺要用 C 包 dll ... 不知道可行性如何
11/07 19:50, 10F

11/07 19:50, , 11F
不過 name mangling 有點麻煩
11/07 19:50, 11F

11/07 20:34, , 12F
你學長只會C不懂C++就算了... 你會C++然後在搞笑嘛?
11/07 20:34, 12F

11/07 21:08, , 13F
........................................
11/07 21:08, 13F

11/07 21:20, , 14F
叫你學長把 office xp 拿去 windows 98安裝阿
11/07 21:20, 14F

11/07 21:24, , 15F
誰整合誰呀 應該是他來遷就你吧 這樣編譯器才會過
11/07 21:24, 15F

11/07 21:24, , 16F
你可以試著把他的程式用C++編譯看看 然後修正整合在一起
11/07 21:24, 16F

11/07 23:03, , 17F
我擅長的語言是硬體語言 ^^
11/07 23:03, 17F

11/07 23:04, , 18F
C++的程式大約有五支 C的程式大約幾百支吧 所以就...
11/07 23:04, 18F

11/08 02:20, , 19F
如果是這樣建議改成用C寫 不要自找麻煩越寫越多
11/08 02:20, 19F

11/09 22:30, , 20F
其實是辦得到的。只要把C++類別用DLL包裝,然後Export函式
11/09 22:30, 20F

11/09 22:31, , 21F
如此,C的程式就可以用Implicit或Explicit linking使用了.
11/09 22:31, 21F

11/10 00:50, , 22F
是阿 DLL/static library是正解
11/10 00:50, 22F

11/10 00:50, , 23F
但是若用DLL,要怎麼用constructor...C應該不支援這個
11/10 00:50, 23F
文章代碼(AID): #1AzKmrBn (C_and_CPP)
文章代碼(AID): #1AzKmrBn (C_and_CPP)