CSSE 板


LINE

※ 引述《tinlans ( )》之銘言: : 另外,也應該盡早學會 DLL 或 shared object 應用在 OO 上的技巧, : 一大堆人到了進去業界才知道 executable file 只要看到 base class, : 就能直接透過 dynamic binding 機制 call 到 dynamic library 中 : derived classes 內的 virtual functions, : 而反過來說, : 當 dynamic library 內的 source code 不可見, : 但其 header files 提供 base classes 的定義式時, : 使用 library 的人就可以透過繼承機制去 reuse 現有但不可見的 code。 : 只不過,書很少會講這種東西, : 也不會有講 OO design pattern 的書跟你說 factory 可以配這東西玩。 請問一下這樣的機制是否就類似 M$ 的 COM 呢? 如 ap 可以利用 interface pointer (or base class pointer) 去操作放在 COM DLL 之中的實作品 另外如果自己玩這機制 不知對於 C++ 編譯器產生的命名問題,有什麼好的解法嗎? 我指的是使用不同/不同版本的編譯器所編出來的 DLL 其 export 出來的 class name (好像是叫 name mangling 問題) --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.228.207.96
1F:推 tinlans:我的主要工作平台不在 MS 上所以沒辦法回答你 COM 的部份 01/08 16:43
2F:→ tinlans:mangling 的問題,不同 compiler 編譯出來不一定會通 01/08 16:46
3F:→ tinlans:光是 GCC 自己 2.x -> 3.x 編譯出來的都不通了,解法我也 01/08 16:47
4F:→ tinlans:沒去研究 01/08 17:02
5F:推 nvfp:無解吧, 每家各做各的沒個標準 0rz 01/08 17:43
6F:推 UNARYvvv:或者我該換個問法。所謂直接透過動態繫結使用 DLL 內的 01/08 20:44
7F:→ UNARYvvv:derived class 而又不受限於 mangling 問題的話,一般是 01/08 20:45
8F:→ UNARYvvv:否是使用一個 extern "C" GetXXXObjectPointer() 傳回一 01/08 20:46
9F:→ UNARYvvv:個新的 derived class pointer,然後指派給 ap 中的那個 01/08 20:47
10F:→ UNARYvvv:base class pointer 以便來進行 polymorphism ? 01/08 20:48
11F:→ tinlans:理論上是可以這樣做沒錯,但不同 compiler 間也還存在著 01/08 20:52
12F:→ tinlans:calling convention 的不同,所以就算是純 C 寫碰到這種情 01/08 20:53
13F:→ tinlans:形也一樣會掛。 01/08 20:53
14F:→ tinlans:只不過,存在已久的 platform 本身就會規範好標準讓大家遵 01/08 20:59
15F:→ tinlans:循,可是如果是在亂七八糟或很新的 platform 上,就沒輒了 01/08 20:59
16F:→ UNARYvvv:謝謝,我剛才倒是忘了考慮 calling convention 的問題 01/08 22:11
17F:→ UNARYvvv:所以我要這樣玩還是盡量 ap 和 DLL 都用同一套 compiler 01/08 22:11
18F:→ UNARYvvv:來編就沒那些麻煩問題了 (當然compiler也該用同版本) 01/08 22:12
19F:推 godfat:所以我們需要 n1496 ? 01/08 22:18
20F:→ godfat:www.open-std.org/jtc1/sc22/wg21/docs/papers/2003/n1496. 01/08 22:19
21F:→ godfat:html 縮:http://rubyurl.com/8ap 01/08 22:19







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Tech_Job站內搜尋

TOP