Why are un-exported functions’ names still listed in MinGW DLLs?

I have a DLL with these functions:

void __declspec(dllexport) foo1()

void foo2()

When opening the DLL in Dependency Walker, only foo1() is shown as exported, which is expected. However, when I opened the DLL file in a hex-editor, I noticed the string _Z4foo2v, which looks like an export-name.

But since foo2() is not marked for export, why is this string _Z4foo2v present?

Source: dll

Leave a Reply