none
Erro Com Variaveis RRS feed

  • Pergunta

  • Boa noite!

    Estou tendo um pequeno problema para com variáveis do tipo TCHAR e LPCWSTR, basicamente eu coloco o conteudo dela e da erro, estou aprendendo ainda a manipular Processos utilizando C++ então me desculpem pela duvida tão "noob", segue a baixo meu código para poderem analisar melhor o caso.

    #include "stdafx.h"
    #include <Windows.h>
    #include <string.h>
    #include <iostream>
    #include <TlHelp32.h>
    
    DWORD getBaseAddress(DWORD pid, TCHAR* n);
    
    int main(int argc, char* argv[]) {
    	HWND hWnd = 0;
    	DWORD pid = 0;
    	LPCWSTR window = "Aplicacao";
    	TCHAR aplicacao = "Aplicacao.exe";
    
    	hWnd = FindWindow(0, window);
    
    	if (hWnd) {
    		GetWindowThreadProcessId(hWnd, &pid);
    
    		if (pid) {
    
    			HANDLE gHandle = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, pid);
    
    			if (gHandle) {
    				DWORD baseAddress = getBaseAddress(pid, aplicacao);
    
    				std::cout << "HWMND :: " << hWnd << std::endl;
    				std::cout << "PID :: " << pid << std::endl;
    				std::cout << "HANDLE :: " << gHandle << std::endl;
    				std::cout << "ADDR :: " << baseAddress << std::endl;
    
    				CloseHandle(gHandle);
    			}
    		}
    	}
    
    	std::cin.get();
    	return 0;
    }
    
    DWORD getBaseAddress(DWORD pid, TCHAR* n) {
    
    	HANDLE module_snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, pid);
    	if (module_snapshot)
    	{
    		MODULEENTRY32 modEntry;
    		modEntry.dwSize = sizeof(MODULEENTRY32);
    
    		if (Module32First(module_snapshot, &modEntry))
    		{
    			do {
    				if (!strcmp(modEntry.szModule, n))
    				{
    					CloseHandle(module_snapshot);
    					return (DWORD)modEntry.modBaseAddr;
    				}
    			} while (Module32Next(module_snapshot, &modEntry));
    		}
    
    	}
    }
     

    Aproveitando, gostaria de uma indicação de material didático, como trabalhar com Processos, Interface utilizando C++ e outras coisas que vocês mais experientes julgarem importante aprender.

    Agradeço a atenção de todos e peço desculpas por qualquer inconveniente.


    terça-feira, 10 de julho de 2018 23:21