2009年4月15日 星期三

Export DLL symbols to LIB

用 gcc 如果要發佈成 dll,只要編譯器加點選項,就可以發佈給別人連結了。但是 Visual C++ 卻要在每個 symbol 上加上關鍵字 __declspec(dllexport) 才會匯出到 lib,然後才能連結。
__declspec(dllexport) void blah();
class __declspec(dllexport) Blah {};
不管怎麼說,微軟的確是這方面的天才。

2 則留言:

  1. http://msdn.microsoft.com/zh-tw/library/hyx1zcd3.aspx

    cl /c adll.cpp
    link /DEF:adll.def adll.obj

    匯出、匯入之 __declspec 皆非必要。

    回覆刪除
  2. 的確 ... 不過這好像只是"換一種方式"把 symbol 匯出?

    話說有一次我還要修改別人的 *.def 才能正常 link (似乎是 mp3lame 還啥鬼的)

    回覆刪除