【发布时间】:2010-08-08 19:04:00
【问题描述】:
我有一个原型函数
DWORD WINAPI blah(LPVOID arg);
这意味着与 CreateThread 一起用于线程应用程序。
我用 CreateThread 调用它没有问题。但是在代码中的其他地方,我通常称之为blah(NULL)。当它到达这部分时,它会崩溃。这是因为 WINAPI 部分使它成为 __stdcall 并且您不能像那样调用 __stdcall 函数吗?
【问题讨论】:
-
很难说没有
blah的定义。这可能是各种各样的事情。 -
函数中有什么?它是否取消引用您传递的空指针?
-
不,它不使用参数。我只是想知道程序是否会崩溃,因为它是 __stdcall 但我不是从 CreateThread 调用它。
-
当您应该询问问题时,您询问的是一个步骤。而不是子问题“会因为
__stdcall而崩溃”,您应该只询问完整的问题(让我们看到函数)“为什么在没有CreateThread的情况下调用时会崩溃...”,这可能导致“哦,你不能用__stdcall调用它。”永远不要问子问题,只问真正的问题。顺便说一句,调用它应该没问题。 -
你是直接调用还是通过回调之类的方式调用它?
标签: c++ multithreading crash stdcall