예제 #1
0
void 
Cspec4Cfg::setSavepath(int type,CString path,bool trim) { 
	savepatharray[type]=(trim?TrimFileName(path):path); 

	CString kval,tval;
	kval=_T("SOFTWARE\\Wilson Analytical\\LightPilot QB");
	RegistryHelper regworker;
	if (regworker.Init(kval))
		regworker.WriteStringValue(savenamearray[type],savepatharray[type]);
}
예제 #2
0
bool Cx_LogManager::WriteLog(x3LogType type, const wchar_t* msg,
    const wchar_t* extra, const char* file, long line)
{
    CLockCount locker(&m_loglock);
    if (m_loglock > 1)
    {
        return false;
    }

    std::wstring msg2, extra2, module, idname;

    CheckMsgParam(msg2, extra2, module, idname, msg, extra);
    file = TrimFileName(file);
    FireFirstEvent();

    for (ObserverIt it = m_observers.begin(); it != m_observers.end(); ++it)
    {
        it->first->OnWriteLog(type, msg2, extra2,
            module, idname, file, line);
    }

#if defined(_DEBUG) && defined(OutputDebugString)
    const wchar_t* names[] = { L"> LogInfo: ",
        L"> LogWarning: ", L"> LogError: ", L"> FatalError: " };
    if (type >= x3LogType_Info && type <= x3LogType_Fatal)
    {
        OutputDebugStringW(names[type - x3LogType_Info]);
        OutputDebugStringW(msg);
        if (!extra2.empty())
        {
            OutputDebugStringW(L", ");
            OutputDebugStringW(extra);
        }
        OutputDebugStringW(L"\n");
    }
#endif

    return true;
}
예제 #3
0
int Cx_LogManager::CrtDbgReport(const char* msg, const char* file, long line)
{
    WriteLog(x3LogType_Fatal, L"@LogManager:IDS_ASSERTION_FAILED",
        x3::a2w(msg).c_str(), file, line);

#ifndef _WIN32
    return 3;
#else
    wchar_t buf[512];

    swprintf_s(buf, 512,
        L"Debug Assertion Failed!\n"
        L"\nExpression: %s"
        L"\nFile: %s"
        L"\nLine: %d"
        L"\n\n(Press Retry to debug the application)",
        x3::a2w(msg).c_str(),
        x3::a2w(TrimFileName(file)).c_str(), line);

    return MessageBoxW(NULL, buf, L"Debug Assertion Failed",
        MB_TASKMODAL|MB_ICONHAND|MB_ABORTRETRYIGNORE|MB_SETFOREGROUND);
#endif
}