估計有時你不想暴露所有的匯出函式,匯出乙個類有時候更是不安全的。
以下這樣做是否可以?
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 在標頭檔案或是包含標頭檔案下面新增...