toolsreport.cpp

来自「C++ image processing.Mainly it occupies 」· C++ 代码 · 共 63 行

CPP
63
字号
#include "ToolsReport.h"
#include <stdlib.h>
#include <stdio.h> 

/* 

This "SOFTWARE" is a free software.

You are allowed to download, use, modify and redistribute this software.
The software is provided "AS IS" without warranty of any kind.

Copyright: University of Koblenz-Landau, Dirk Balthasar

*/

#ifdef _WIN32
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#endif


#ifndef WIN32
#define _vsnprintf vsnprintf
#endif


tools::CMessageHandler* tools::CMessageHandler::m_MsgHandler = 0;
void tools::LogMessage(const char *Msg)
{
	CMessageHandler *handler = CMessageHandler::Get();
	if (handler)
	{
		handler->LogMessage(Msg);
	}
}

void tools::LogMessageFmt(const char *fmt, ...)
{
	int BufferSize = 255; // initial buffersize 
	va_list ap;
	va_start(ap, fmt);
	char *buffer = (char*)malloc(BufferSize);		
	// vsnprintf Win32: rvalue -1: exeeds buffer 
	// vsnprintf Win32: rvalue -1: exeeds buffer 
	while (	(_vsnprintf(buffer, BufferSize, fmt, ap) < 0) || // win32 (fuck!)
			(_vsnprintf(buffer, BufferSize, fmt, ap) > BufferSize)) // unix (fuck!)
	{// buffer was to small. Enlarge buffer.
		BufferSize += 1000;
		buffer = (char*)realloc(buffer,BufferSize);
	}

	CMessageHandler *handler = CMessageHandler::Get();
	if (handler)
	{
		handler->LogMessage(buffer);
	}
	free(buffer);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?