用 gcc 如果要發佈成 dll,只要編譯器加點選項,就可以發佈給別人連結了。但是 Visual C++ 卻要在每個 symbol 上加上關鍵字 __declspec(dllexport) 才會匯出到 lib,然後才能連結。
__declspec(dllexport) void blah(); class __declspec(dllexport) Blah {};不管怎麼說,微軟的確是這方面的天才。
http://msdn.microsoft.com/zh-tw/library/hyx1zcd3.aspx
回覆刪除cl /c adll.cpp
link /DEF:adll.def adll.obj
匯出、匯入之 __declspec 皆非必要。
的確 ... 不過這好像只是"換一種方式"把 symbol 匯出?
回覆刪除話說有一次我還要修改別人的 *.def 才能正常 link (似乎是 mp3lame 還啥鬼的)