2015-04-06 88 views
1

这可能是显而易见的,但对我来说没有多大意义。我正在尝试创建一个将被注入到使用C++的游戏过程中的dll。我已经读过,我不应该用这种方法调用CreateThread之类的东西,因为它是'危险的'。如果我有另一种类似的方法,这仍然很危险吗? (伪):C++ DllMain API调用

foo() 
{ 
    CreateThread(); 
} 

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

如果这不是安全的,应该怎么做?

回答

1

是的,你仍然违反了“你不应该做API调用和/或创建线程”规则。仅仅因为你使用DllMain调用的函数进行API调用并不会改变它,因为它仍然是从DllMain中调用的,只是在调用堆栈的更远处进行调用。

在这个stackoverflow question有更多的相关答案和链接。