mirror of
https://github.com/frida/tinycc
synced 2024-12-23 21:46:49 +03:00
536ed76d5a
Also, retain storage qualifiers in type_decl, in particular also for function pointers. This allows to get rid of this very early hack in decl() type.t |= (btype.t & VT_STATIC); /* Retain "static". */ which was to fix the case of int main() { static int (*foo)(); ... Also: - missing __declspec(dllimport) is an error now - except if the symbol is "_imp__symbol" - demonstrate export/import of data in the dll example (while 'extern' isn't strictly required with dllimport anymore) - new function 'patch_storage()' replaces 'weaken_symbol()' and 'apply_visibility()' - new function 'update_storage()' applies storage attributes to Elf symbols. - put_extern_sym/2 accepts new pseudo section SECTION_COMMON - add -Wl,-export-all-symbols as alias for -rdynamic - add -Wl,-subsystem=windows for mingw compatibility - redefinition of 'sym' error for initialized global data
14 lines
340 B
C
14 lines
340 B
C
//+---------------------------------------------------------------------------
|
|
//
|
|
// dll.c - Windows DLL example - dynamically linked part
|
|
//
|
|
|
|
#include <windows.h>
|
|
|
|
__declspec(dllexport) const char *hello_data = "(not set)";
|
|
|
|
__declspec(dllexport) void hello_func (void)
|
|
{
|
|
MessageBox (0, hello_data, "From DLL", MB_ICONINFORMATION);
|
|
}
|