2015-04-06 87 views
1

這可能是顯而易見的,但對我來說沒有多大意義。我正在嘗試創建一個將被注入到使用C++的遊戲過程中的dll。我已經讀過,我不應該用這種方法調用CreateThread之類的東西,因爲它是'危險的'。如果我有另一種類似的方法,這仍然很危險嗎? (僞):C++ DllMain API調用

foo() 
{ 
    CreateThread(); 
} 

DllMain(reason) 
{ 
    if(reason == attach) 
    { 
     foo(); 
    } 
} 

如果這不是安全的,應該怎麼做?

回答

1

是的,你仍然違反了「你不應該做API調用和/或創建線程」規則。僅僅因爲你使用DllMain調用的函數進行API調用並不會改變它,因爲它仍然是從DllMain中調用的,只是在調用堆棧的更遠處進行調用。

在這個stackoverflow question有更多的相關答案和鏈接。