EXE也导出静态lib导出

时间:2012-05-19 13:27:50

标签: c++ pe-exports

我创建了一个静态库和一个EXE文件(使用静态库),但是当我在IDA pro中打开EXE时,导出也列在EXE中。

我知道它们应该在.lib本身中导出,但为什么它们也会在EXE中显示为导出呢?

编辑:这是导出/导入(它们位于单独的头文件中)

这是导出:

#define NC_LIBEXPORT(a) extern "C" __declspec(dllexport) a __cdecl
NC_LIBEXPORT(VOID) rol8(unsigned char* a, unsigned char b);

和导入:

extern "C" VOID rol8(unsigned char* a, unsigned char b);

1 个答案:

答案 0 :(得分:5)

您需要确保在构建静态库时不使用__declspec(dllexport)

如果要在DLL和可执行文件中使用相同的lib,并且不希望可执行文件导出符号,则需要使用DEF文件而不是__declspec(dllexport)