我正在尝试在Eclipse IDE和调试模式下的Windows 7操作系统上创建邮箱。我正在尝试使用Eclipse在Windows中创建类似邮箱的RTOS(实时操作系统)。
到目前为止,这是我的邮箱代码:
RTX_Mailbox RTX_CreateMailbox (unsigned long nSlotSize, unsigned long nSlots, char* szName)
{
::EnterCriticalSection (&csMailboxLock);
CMailBox* pNewMailbox = new CMailBox (nSlotSize, szName);
aMailBoxes.push_back (pNewMailbox);
RTX_Mailbox mailBox = ((unsigned int)aMailBoxes.size ()) - 1;
::LeaveCriticalSection (&csMailboxLock);
return mailBox;
}
我的应用程序一到达:: EnterCriticalSection(&csMailboxLock);就一直在运行时崩溃。
它返回此错误消息(在所附图片中突出显示):
文本中的错误消息:无可用的ntdll!TpCallbackMayRunLong()位于0x77d78e19
如果需要更多详细信息,请告诉我...
最佳答案
因此,如果有人遇到相同的问题,我确实找到了解决方案。
原来,您需要在使用之前初始化关键部分。因此,以下内容对其进行了修复:
InitializeCriticalSection(&csMailboxLock);
这是对我有帮助的链接:
https://sites.google.com/site/jeff00coder00seattle/home/coding/cpp-coding/c-win32-critical-section-example
关于c++ - 调用EnterCriticalSection时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25969876/