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