0
我很努力去理解,如果我可以防止暴露我正在构建的DLL内的某些函数调用。我想隐藏的函数调用是由sqlite3.dll公开的调用,我正在将其构建到另一个我自己制作的DLL中。 sqlite3.dll暴露出5个功能,其中一个看起来像这样的标题:隐藏依赖DLL函数
SQLITE_API int SQLITE_STDCALL sqlite3_close(sqlite3*);
宏在这里打球的早期定义:
/*
** Provide the ability to override linkage features of the interface.
*/
#ifndef SQLITE_EXTERN
# define SQLITE_EXTERN extern
#endif
#ifndef SQLITE_API
# define SQLITE_API
#endif
#ifndef SQLITE_CDECL
# define SQLITE_CDECL
#endif
#ifndef SQLITE_STDCALL
# define SQLITE_STDCALL
#endif
现在,我建立sqlite3.dll成我的应用程序通过链接到sqlite3.lib并包含sqlite3.h(前面的代码片段的源代码)。
我意识到我可能可以使用这些宏来实现我想要的功能。
我揭露的功能在我自己的DLL:
/* module entry point */
int __declspec(dllexport) __stdcall load_properties(CAObjHandle context);
当我看到在我构建的输出提供的功能,让我的功能+从SQLite库5种功能。所有暴露的sqlite函数都具有类似于上面关于close()所示的声明结构。
有没有办法可以隐藏sqlite函数?它是导致问题的.lib文件吗?该文件是自动生成的,所以我不确定那里有什么。