關於定義類成員匯出函式需要注意的一些問題

2021-08-09 08:01:32 字數 1139 閱讀 6746

1:如果是想自己定義的匯出函式在ida中看起來和你的函式名稱一樣的話應該在專案中定義相應的******.def檔案。

在def檔案中定義對應的c++函式名如如下:

library

exports

mywsasend @1

mywsaioctl @2

mysetsockopt @3

myrecv @4

myconnect @5

sethookflag @6

這樣在編譯出來的dll中就可以用getprocaddress填寫對應的匯出函式名,而不需要加一些奇怪的字串。

2:類匯出函式的動態呼叫需要注意乙個問題就是第乙個引數是類的this指標,但是我們在外部呼叫的時候往往無法獲得這個類的this指標。所以這裡我們就傳入乙個nullptr否則會出現堆疊不平,程式崩潰。

3:在類的實現上面也有一點小的變化就是所以涉及到類成員變數的引用,都必須經過一次封裝。否則在動態呼叫函式內部用到成員變數會崩潰。

xbnetapiprotect g_netprotect; 初始化

private:

iunderlyingapi * getapiwsasend(void);

iunderlyingapi * getapiwsaioctl(void);

iunderlyingapi * getapisetsockopt(void);

iunderlyingapi * getapirecv(void);

iunderlyingapi * getapiconnect(void);

bool gethookflag(void);

void setrealhookflag(bool valuebool);

private:

iunderlyingapi * apiwsasend;

iunderlyingapi * apiwsaioctl;

iunderlyingapi * apisetsockopt;

iunderlyingapi * apirecv;

iunderlyingapi * apiconnect;

bool is_protect_;

bool xbnetapiprotect::gethookflag(void)

《封裝的取類成員變數的函式

Python自定義函式需要注意的問題

python自定義函式需要注意的問題 1.縮排。乙個語句塊要用相同的縮排,兩個縮排相同的邏輯行可以看做可以並列的關係,不可能是所屬關係。return需要跟for對齊,否則 2.遍歷。range n 代表的是從0開始,遍歷到n 1,步長為1 range 1,n 1 代表從1開始,遍歷到n 步長為1 r...

關於巨集需要注意的問題

關於巨集需要注意的問題 1 define巨集與函式之間的優劣 巨集的執行速度比函式快得多,函式需要呼叫 返回等操作。函式只能對特定的型別操作,而巨集是型別無關的,巨集還可以實現一些函式無法實現的操作。但巨集需要將所有 拷貝到呼叫程式中,增加了 長度。所以 巨集比較適合執行簡單的計算,如求2個值中的較...

自定義 LayoutManger需要注意的幾個地方

最近寫銷控表,需要有上萬個資料 的情況,首先感謝 的帖主,給了大家乙個非常好的例子。本文也是根據他的帖子的原理,整理了自己在編寫銷控表的時候遇到的問題。很多demo 在onlayoutchildren 方法中 進行兩個動作,乙個是計算得到真實的最大寬高,乙個是進行layout的動作,我的觀點,一旦外...