我创建了一个静态库和一个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);
答案 0 :(得分:5)
您需要确保在构建静态库时不使用__declspec(dllexport)
。
如果要在DLL和可执行文件中使用相同的lib,并且不希望可执行文件导出符号,则需要使用DEF文件而不是__declspec(dllexport)
。