0
#include <windows.h>
int csOpsPrintDataInitialized = 0;
void ObtainOpsPrintDataCritSect()
{
CreateCriticalSectionAsNeccessary();
EnterCriticalSection(&csOpsPrintData);
} // Hp fortify in visual studio 2013 reporting issue: Exception handling.
でもtry catchを使用しても同じ問題が報告されています。Visual Studioでtry catchを使用する方法C++?
void ObtainOpsPrintDataCritSect_sol()]
{
try
{
EnterCriticalSection(&csOpsPrintData);
}
catch(char *msg)
{
}
}
Hpが勧告を強化:この問題は、2つの方法で回避できます。
ラップは、try/catchブロックでEnterCriticalSection()を呼び出します。
InitializeCriticalSection()の代わりにInitializeCriticalSectionAndSpinCount()関数を呼び出します。これにより、EnterCriticalSection()が強制的にイベントを割り当てるのではなく、EnterCriticalSection()が使用するイベントが事前に割り当てられます。
「try/catch」と表示されますか?私は '__try/__ catch 'を期待しています。 2つは意図的に似ていますが、 'try'はC++、' __try'はWindows、 'EnterCriticalSection'はWindowsです。 – MSalters