Salida de 1 impresión de notas de estudio irreales

1. Información general

En comparación con varios métodos de depuración de puntos de interrupción, estoy más acostumbrado a usar impresiones para la depuración.

2. Discusión detallada

2.1 Código

Aquí se escriben tres funciones: salida a la pantalla, salida al registro de advertencias y salida al registro de errores.

Salida.h:

#pragma once

namespace Output
{
    
    
	void PrintScreen(const char* lpszFormat, ...);

	void PrintLogWarning(const char* lpszFormat, ...);

	void PrintLogError(const char* lpszFormat, ...);
};

Salida.cpp:

#include "Output.h"

#include <Engine.h>
#include <Logging/LogMacros.h>

#include <array>

namespace Output
{
    
    
	void PrintScreen(const char* lpszFormat, ...)
	{
    
    
		char szInfo[512];

		va_list argList;
		va_start(argList, lpszFormat);
		vsnprintf(szInfo, 512, lpszFormat, argList);
		va_end(argList);

		//GEngine->AddOnScreenDebugMessage(-1, 5.0f, FColor::Red, FString::Printf(TEXT("Print Message this is %f"), 2.3f));
		GEngine->AddOnScreenDebugMessage(-1, 5.0f, FColor::Red, FString(UTF8_TO_TCHAR(szInfo)));
	}

	void PrintLogWarning(const char* lpszFormat, ...)
	{
    
    
		char szInfo[512];

		va_list argList;
		va_start(argList, lpszFormat);
		vsnprintf(szInfo, 512, lpszFormat, argList);
		va_end(argList);
		
		UE_LOG(LogTemp, Warning, TEXT("%s"), UTF8_TO_TCHAR(szInfo));
	}

	void PrintLogError(const char* lpszFormat, ...)
	{
    
    
		char szInfo[512];

		va_list argList;
		va_start(argList, lpszFormat);
		vsnprintf(szInfo, 512, lpszFormat, argList);
		va_end(argList);

		GEngine->AddOnScreenDebugMessage(-1, 5.0f, FColor::Red, FString(UTF8_TO_TCHAR(szInfo)));
		UE_LOG(LogTemp, Error, TEXT("%s"), UTF8_TO_TCHAR(szInfo));
	}
	
};

2.2 Análisis

  • Para imprimir información de salida, creo que es más conveniente (similar printf("个数:%d", num);) formatear la salida en lenguaje C y usar marcadores de posición formateados para empalmar cadenas.

  • La clase de cadena FString de UE administra cadenas TCHAR. TCHAR es la encapsulación de char y wchar_t. Es char en codificación local ANSI y wchar_t en codificación internacional Unicode.

  • La macro UTF8_TO_TCHAR convertirá una cadena UTF8 en una cadena TCHAR. Si desea generar chino en este código de impresión de salida, debe cambiar la codificación del archivo de código a la codificación UTF8.

  • El registro de salida se puede mostrar en el panel "Registro de salida": Ventana->Herramientas de desarrollador->Registro de salida.

Próximo

dirección de código


Tabla de contenido:

  1. Salida de 1 impresión de notas de estudio irreales
  2. Notas de estudio irreales 2 - dibujar triángulos simples

Supongo que te gusta

Origin blog.csdn.net/charlee44/article/details/128503667
Recomendado
Clasificación