我想自己做一個對話框封裝成靜態LIB,不是都動態dll工程!!是靜態庫工程,動態庫的我已經實作了,但是不太符合我的需要,我想全部編進EXE不用帶dll,靜態lib工程我也編成功了,但是不知道頭檔案要怎么去寫,有什么extern”c“的,還有這么呼叫這個lib里面的東西。
uj5u.com熱心網友回復:
靜態庫就跟自己代碼里一樣使用,頭檔案include進來就可以用uj5u.com熱心網友回復:
靜態庫就是把你庫中的頭檔案和lib一起放到另一個工程,其他地方包含頭檔案就可以呼叫函式等uj5u.com熱心網友回復:
頭檔案里放函式宣告就行了。要不要加 extern "C" 在于你原來生成 lib 的函式有沒有加。如果 lib 是 C 代碼生成的,h 最好加上 EXTERN_C 這個是 Windows 頭檔案的宏。在 C 中等于空白,C++ 中等于 extern "C"。或者你自己寫成這樣:
#ifdef __cplusplus
extern "C"
#endif
如果 lib 是 C++ 代碼生成的,h 中的函式一般都不需要加 extern "C",與 cpp 檔案中的實作一致即可。
然后包含這個 h 檔案,專案設定中添加包含(頭檔案)目錄和庫目錄即可使用。
uj5u.com熱心網友回復:
靜態庫本質上就是一段代碼uj5u.com熱心網友回復:
#pragma comment(lib, "xxx.lib")uj5u.com熱心網友回復:
樓上的都說了很多了,路過路過!uj5u.com熱心網友回復:
為什么都在回答“怎么使用靜態庫”,問題明明是 “怎么創建靜態庫(帶界面)”啊uj5u.com熱心網友回復:
你沒看懂樓主的問題吧 人家都實作了 就是不知道怎么給別人呼叫
uj5u.com熱心網友回復:
樓主,可以說下靜態庫中怎么封裝對話框嗎,我封裝的靜態庫,測驗呼叫靜態庫的對話框domodel(), 對話框不顯示。。。//靜態庫中的介面:
int setAuthentication( )
{
AuthenticaDlg dlg;
dlg.DoModal();
return 0;
}
//測驗程式中呼叫靜態庫介面的地方:
void CLibTestDlg::OnBnClickedOk()
{
// TODO: Add your control notification handler code here
int nRet = -1;
nRet = setAuthentication();
OnOK();
}
uj5u.com熱心網友回復:
https://docs.microsoft.com/en-us/previous-versions/ms235627(v=vs.140)uj5u.com熱心網友回復:
https://blog.csdn.net/liunan199481/article/details/81513049uj5u.com熱心網友回復:
樓主你實作了嗎?我也把mfc編譯成了lib,但是在主專案里呼叫的時候,總是不能創建視窗,然后我發現lib不會包含rc資源檔案,現在我把資源檔案包含到主專案的資源檔案里了,但還是創建失敗轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/54399.html
標籤:界面
