?????????????????????????????????????????????????????????DLL??????????????????????????????????????????????????????????á?????????????漸???????????????

?????? ??????鶨???????EXPORT?????????????????????????

?????? ???MFC???????η???_declspec??dllexport????

?????? ???????з????????/EXPORT??????????й??????

??????windows??????У?????????д??鶨???????.DEF????????????????DLL???????????????????????

????2.2 Linux?????????

??????Linux???????У??????????????????Shared Object???????????Windows?????????????????????????????????????????????.so????????????????????У???????????????????Linux????/lib????????ν????/usr/X11R6/lib???????棬???????so??β????????

???????????Linux?£???о??????????????÷?????????????.a??????Linux????ù????????????????乲????????????п???????????????????????Linux?????????LD-PRELOAD?????????????????????????????е???????滻????顣

?????Windows?????????Linux?д????????????????????????飬???????????????????-shared???????????????????г??????????????????????????so????????Linux???????????????У???????????д?????????????????.h???????д??????????????.c??.cpp?????????дmakefile??????????С????????????????????????????????????????

??????????????????????????????????н??е??á???Linux?У?????????????÷?????Windows????????..system32???????????????????????????/lib????????/lib?????潨???????????????????????á?

???????????Linux????????????????????????????????????????????dlfcn.h???????????????????????????????????

??????1??_??????????dlopen?????????void *dlopen ??const char *filename?? int flag???? dlopen?????????????filename?????????????????????????

??????2?????????е????dlsym???????????? void *dlsym??void *handle?? char *symbol???? dlsym???????????????????handle????????symbol??????????????????????д???????

??????3????????????dlclose???????????? int dlclose ??void *handle???? dlclose???????????????????????е?????????????ü????0??????????????ж???

??????4??????????????dlerror???????????? const char *dlerror??void???? ??????????????????????????dlerror?????????????????????NULL??????????????г????

???????????????е?????????????????ó?????????????????????????????????????????????????д?????????????makefile???????????????????-rdynamic??-ldl??

???????????????????д????????????Linux???????????????????????????÷???????????????????????????????Windows?????????????????????????????“lib*.so.*”???????????????У??????*??????????????????????*?????????????汾??????????а汾???

????????????÷???У???????????????????????/etc/ld.so.conf?????????????????????????????????????????????????????????????С??????X window?????????а??????ж?????/usr/X11R6/lib???????X window???????????????????????

???????????????????????????????????ж???????????????./sbin/ldconfig???????????????????????????gcc???? –l??-L???????????????????????????б?????Linux???棬???????ldd?????????????????????