所以對於參數的緣故,我有一個名爲ExportedFunctions.cpp蒙山一對夫婦的裝飾與DLL_EXPORT功能模塊(見下文)如何阻止在MS VS C++中導出函數?
#define DLL_EXPORT __declspec(dllexport)
ExportedFuncitons.cpp包括LibraryFunctions.h。在該頭文件中聲明的函數在LibraryFunctions.lib中實現並靜態鏈接到我的項目。
問題是,當我編譯我的DLL並使用依賴walker(depends.exe)來查看它時,我不僅可以看到ExportedFunctions.cpp導出的函數,還可以看到LibraryFunctions.h中的所有函數。
就是這樣,即使我從LibraryFunctions.h中刪除了一些函數聲明。它們繼續顯示爲DLL入口點。我想隱藏它們。
您是否嘗試過使用命名空間{}(即匿名命名空間)?雖然功能可能仍然可以導出,但不可能調用它們,因爲範圍解析永遠不會成功。 – moshbear
是否有可能以調試模式構建庫和/或Dependency Walker是否正在提取調試符號,這將允許它顯示所有函數(不管是否導出)? –