From: Vitaly V. B. <vit...@uk...> - 2005-02-14 21:55:56
|
On Mon, 14 Feb 2005 21:41:24 +0100 Dennis Smit <sy...@yo...> wrote: > And put it in front of every symbol you export, IE every >EVERY< > function. Well, it is a common practice... I believe it not a mandatory. I've built dll library and a import library. Looks like every thing's fine. [vitalyb@vb .libs]$ i386-pc-mingw32-objdump -x libvisual-0.dll ..... [Ordinal/Name Pointer] Table [ 0] __lv_initialized [ 1] __lv_paramcontainer [ 2] __lv_plugins [ 3] __lv_plugins_actor [ 4] __lv_plugins_input [ 5] __lv_plugins_morph [ 6] __lv_plugins_transform [ 7] __lv_plugpath_cnt [ 8] __lv_plugpaths [ 9] __lv_progname [ 10] __lv_userinterface [ 11] _lv_blit_overlay_alpha32_mmx [ 12] _lv_log [ 13] _lv_scale_bilinear_32_mmx [ 14] visual_actor_get_list [ 15] visual_actor_get_next_by_name [ 16] visual_actor_get_next_by_name_gl .... [ 371] visual_video_set_palette [ 372] visual_video_set_pitch [ 373] win32_sig_handler_sse@4 .... Every non-static symbol was exported. As by default is. ============ test.c int main() { return visual_actor_get_list(); } ============ [vitalyb@vb .libs]$ i386-pc-mingw32-gcc test.c -L. -lvisual.dll [vitalyb@vb .libs]$ i386-pc-mingw32-objdump -x a.exe .... The Import Tables (interpreted .idata section contents) vma: Hint Time Forward DLL First Table Stamp Chain Name Thunk 00004000 00004054 00000000 00000000 000041bc 000040a0 DLL Name: libvisual-0.dll vma: Hint/Ord Member-Name Bound-To 40e8 14 visual_actor_get_list .... So, with GNU tools EXPORT stuff is not necessary. But with non-GNU tools you need these at least within the headers, for successful compilation, I think. Import library can be built from .def (hm, I don't remember exactly) file. -- Vitaly GPG Key ID: F95A23B9 |