VS2010 から VS2012 に移行した直後、何度も同じクラッシュが発生します。コード C0000409 の BEX エラー。
static void LoadBonus()
{
// Get Bonus EXP
{
sql::Statement* stmt = mysql_con_sps->createStatement();
sql::ResultSet* res = stmt->executeQuery("SELECT `value` FROM `variables` WHERE `name` = 'expbonus'");
if (res->next())
{
dwBonusEXP = res->getInt("value");
delete stmt;
delete res;
}
else
{
delete stmt;
delete res;
printf("MySQL Error: GetBonusEXP Failed.\n");
WriteToFile("SQLLog.txt", "MySQL Error: GetBonusEXP Failed.\n");
ExitProcess(0);
}
}
// Get Bonus SP
{
sql::Statement* stmt = mysql_con_sps->createStatement();
sql::ResultSet* res = stmt->executeQuery("SELECT `value` FROM `variables` WHERE `name` = 'spbonus'");
if (res->next())
{
dwBonusSP = res->getInt("value");
delete stmt;
delete res;
}
else
{
delete stmt;
delete res;
printf("MySQL Error: GetBonusSP Failed.\n");
WriteToFile("SQLLog.txt", "MySQL Error: GetBonusSP Failed.\n");
ExitProcess(0);
}
}
printf("[Server] BonusExp: %d BonusSP: %d\n", dwBonusEXP, dwBonusSP);
}
この関数の最後で、コンパイラは /GS フラグに関連する呼び出しを追加します。C0000409 クラッシュがそこでクラッシュします。
なぜそれが起こるのですか?どうすれば修正できますか?
ありがとうございました。