none
un argumento de tipo "WCHAR *" no es compatible con un parámetro de tipo "const char *" RRS feed

  • Pregunta

  • Les dejo los errores que me tira al compilar (el 1° Error es en la línea 44)

    Error (activo) E0167 un argumento de tipo "WCHAR *" no es compatible con un parámetro de tipo "const char *"

    Error C1010 final de archivo inesperado al buscar la directiva de encabezado precompilado. Compruebe si olvidó agregar '#include "stdafx.h"' al código fuente?

    Mi código

    #include <Windows.h>
    #include <TlHelp32.h>
    #include <iostream>
    
    using namespace std;
    HANDLE BuscarProceso(char* sProceso);
    int main()
    {
    	DWORD ProteccionVieja;
    	DWORD DatosEscritos;
    	LPVOID DirVictima = (LPVOID)0x00414393;
    	DWORD DatoAEscribir = 5;
    	HANDLE NuestroProceso = BuscarProceso("Victima.exe");
    	if (NuestroProceso == INVALID_HANDLE_VALUE)
    		cout << "Proceso no abierto, no se esta ejecutando" << endl;
    
    	else
    		cout << "Proceso abierto!" << endl;
    	if (VirtualProtectEx(NuestroProceso, DirVictima, 1,
    
    		PAGE_EXECUTE_READWRITE, &ProteccionVieja))
    
    		cout << "Proteccion modificada!" << endl;
    	else
    		cout << "Fallo al modificar la proteccion del objetivo" << endl;
    	if (WriteProcessMemory(NuestroProceso, DirVictima, &DatoAEscribir, 1, &DatosEscritos))
    
    		cout << "Datos escritos correctamente";
    	else
    		cout << "Error al escribir en proceso";
    	CloseHandle(NuestroProceso);
    	cin.get();
    	return 0;
    }
    
    HANDLE BuscarProceso(char* sProceso) {
    	HANDLE hProcesoCaptura;
    	PROCESSENTRY32 pe32;
    	hProcesoCaptura = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);
    
    	pe32.dwSize = sizeof(PROCESSENTRY32);
    	if (Process32First(hProcesoCaptura, &pe32)) {
    		do {
    			if ((!strcmp(pe32.szExeFile, sProceso))) {
    				CloseHandle(hProcesoCaptura);
    				return OpenProcess(PROCESS_ALL_ACCESS,
    					TRUE, pe32.th32ProcessID);
    
    			}
    		} while (Process32Next(hProcesoCaptura, &pe32));
    	}
    	CloseHandle(hProcesoCaptura);
    	return INVALID_HANDLE_VALUE;
    }

    domingo, 5 de noviembre de 2017 4:34

Respuestas

  • Ve a las propiedades del proyecto y, donde dice juego de caracteres, pon utilizar multibyte.

    O, deja UNICODE, y cambia char pot wchar_t, cout por wcout, L delante de las cadenas literales, strcmp por wcscmp, ....

    • Marcado como respuesta iJaredBN domingo, 5 de noviembre de 2017 17:20
    domingo, 5 de noviembre de 2017 12:37