如何隱藏DLL的匯出函式

2021-04-19 08:52:58 字數 618 閱讀 4701

估計有時你不想暴露所有的匯出函式,匯出乙個類有時候更是不安全的。

以下這樣做是否可以?

dll中定義乙個基類

class iinte***ce

匯出類從這個基類派生

//driver.h

class cdriver : public iinte***ce

//driver.cpp

void cdriver::dfun1()

void cdriver::dfun2()

然後匯出乙個函式

extern

"c" bool winapi docreateinstance(void **ppv)

else

}用depends.exe檢視這個dll可以看到只有乙個docreateinstance

然後客戶就可以這樣使用

iinte***ce * pins = null;

typedef

bool (winapi* lpfndllfunc)(void **);

hinstance hdll =  loadlibrary(_t("your dll path"));

if(hdll != null)

}(完) 有何錯誤歡迎指正。

如何隱藏DLL的匯出介面

如何你希望優化你 dll的最終生成大小,在每乙個匯出函式中使用noname屬性。增加了這個屬性表明你只希望保留 dll匯出表中順序,不希望讓別人看到你匯出的函式名。exports fnhideexportingfunctions 1 noname fnhideexportingfunctions1 ...

DLL匯出函式

經常使用vc6的dependency檢視dll匯出函式的名字,會發現有dll匯出函式的名字有時大不相同,導致不同的原因大多是和編譯dll時候指定dll匯出函式的界定符有關係。vc 支援兩種語言 即c c 這也是造成dll匯出函式差異的根源 我們用vs2008新建個dll工程,工程名為 testdll...

DLL匯出函式

dll匯出的函式 和 匯出類在呼叫時,有些區別,這裡暫時不講,直說簡單的匯出函式 include stdafx.h include mathdll.h pragma comment lib,mathdll.lib 你也可以在專案屬性中設定庫的鏈結 int main 在標頭檔案或是包含標頭檔案下面新增...