- 就像是一般library 一樣,啟動時就自動load進memory了。
- 像Driver一樣,被動的由AP load進入memory。
使用 2的話,interface就受限制了,要是一般的cedel type c function,不能export class出來。
1 的dll 中:
要export 出來的class 要加上 DLLMACRO 的宣告:
其中 DLLMACRO 的定義是:class DLLMACRO CDummy
{
public:
....
要用 AFXDLL 來區分的原因是..#ifdef _AFXDLL
#define DLLMARCO __declspec(dllexport)
#else
#define DLLMARCO __declspec(dllimport)
#endif
這個header file會被 DLL 和 APP include,當是 DLL 參照時,DLLMACRO 要定義成 dllimport。
當被APP參照時,DLLMACRO要定義成 dllexport。
這個方法,build出來的DLL會產生兩個 file : *.dll, *.lib
- *.dll : 是要放在 target image中。os啟動時會load起來。
- *.lib : 是給 app link用。
沒有留言:
張貼留言