Перейти к содержанию

Вывод данных .DLL в консоль.


Рекомендуемые сообщения

теги(если не нужны то удалите) :

Скрытый текст

как вывести консоль в длл , консоль и длл , как вывести информацию из длл , работающая консоль в длл, как вывести консоль из длл

взял код я у @elvis66666 , но он у меня не работал вывод информации в консоль через cout<< , добавив строчку freopen("CON","w",stdout); все заработало , что и повлекло сделать статью для таки же как я.

Теперь код выглядит так 

Скрытый текст

#define _CRT_SECURE_NO_WARNINGS // у некотрых работает без этого 
#include <stdio.h>
#include <fcntl.h>
#include <io.h>
using namespace std;

void CreateConsole() 
{ 
	int hConHandle = 0;	
	HANDLE lStdHandle = 0;	
	FILE *fp = 0;	
	AllocConsole();	
	freopen("CON", "w", stdout);//  <<<<==================== строчка , которую я добавил в код 
	SetConsoleTitle("Cheat DLL Console");
	HWND hwnd = ::GetConsoleWindow();	
	if (hwnd != NULL) 
	{ 
		HMENU hMenu = ::GetSystemMenu(hwnd, FALSE);		
		if (hMenu != NULL) 
		{ 
			DeleteMenu(hMenu, SC_CLOSE, MF_BYCOMMAND);			
			DeleteMenu(hMenu, SC_MINIMIZE, MF_BYCOMMAND);			
			DeleteMenu(hMenu, SC_MAXIMIZE, MF_BYCOMMAND); 
		} 
	}	
	lStdHandle = GetStdHandle(STD_OUTPUT_HANDLE);	
	hConHandle = _open_osfhandle(PtrToUlong(lStdHandle), _O_TEXT);	
	fp = _fdopen(hConHandle, "w");	
	*stdout = *fp;	
	setvbuf(stdout, NULL, _IONBF, 0); 
}

 

и у меня cout<< стал выводить информацию в консоль из длл

 

PS если тему добавил не туда , прошу переместить =)

Изменено пользователем IzerodayI
Ссылка на комментарий
Поделиться на другие сайты

Если ты пишешь статью (тем более для новичков), нужно хотя бы описать для чего это, где это используется, показать на конкретном примере, пояснить каждую строчку кода.

  • Плюс 2
Ссылка на комментарий
Поделиться на другие сайты

Я что-то вообще не понял почему ты решил добавить в раздел "статьи" да и еще для новичков.
Почему не понял? Да потому что:
1. Ты ничего толком не объяснил.
2. Ты взял чужой код и добавил туда ОДНУ свою строчку.

Что следует сделать:
1. Распиши все подробно
2. Продемонстрируй с скриншотами и прочим ( чтоб придать красивый внешний вид )*


Так же название вообще не внятное "Консоль и ДЛЛ". Можно назвать было к примеру "Вывод данных DLL в консоль".

Если тебе интересно добавить статью то сделай все как написал чуть выше. А тему я перенесу в "Быстрая информация"

 

* - многие люди читают статьи выбирая их по содержанию сопровождающиеся картинками \ видео.

  • Плюс 2
Ссылка на комментарий
Поделиться на другие сайты

  • ReWanet изменил название на Вывод данных .DLL в консоль.
Скрытый текст

#include <Windows.h>
#include <iostream>
#include <TlHelp32.h>
#include <string>
#include <math.h>
using namespace std;


bool __stdcall DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved) //Ф-я которая заработает при инжекте длл
{
	if (dwReason == DLL_PROCESS_ATTACH) //Делаем свитч причины вызова, оставляем только аттач
	{
		DisableThreadLibraryCalls(hInstance); //Убираем аттач и деаттач  оповещения (Хотя их вроде и так нет)
		CreateThread(nullptr, 0, reinterpret_cast<LPTHREAD_START_ROUTINE>(MainLoop), hInstance, 0, nullptr); //Создаем свой поток в котором будет наша ф-я.
  		//Кастим поток в LPTHREAD_START_ROUTINE через reinterpret_cast. Можно и обычно (LPTHREAD_START_ROUTINE)
  		//MainLoop Наш основной метод который вызовется при инжекте длл в процесс
	}
	return true;
}
  
  void MainLoop(HMODULE hModule)
{
		AllocConsole(); //Инициализируем ввод и вывод
		freopen("CONOUT$", "w", stdout); //Перенаправляем вывод в консоль
		printf("TestMessage"); //Пишем в консольку любое значение и прочее, что вам необходимо
		system("cls"); //Очищаем консольку
  		//TODO Your Mega Hack
	}
}

Готовый результат

Изменено пользователем roma91212
Исправил положение коммента
Ссылка на комментарий
Поделиться на другие сайты

1 минуту назад, uhx сказал:

@roma91212 imgui тестишь?)

Угу, только ресайз не работает), поможешь?)

Пс сейчас в лс отпишу

Изменено пользователем roma91212
Ссылка на комментарий
Поделиться на другие сайты

3 минуты назад, roma91212 сказал:

Угу, только ресайз не работает), поможешь?)

Возьми какой-нибудь пример и разбери) По крайней мере так делают все, когда не получается что-то заставить работать)

А у меня времени к сожалению не так много, чтоб еще и с этим разбираться.

Ссылка на комментарий
Поделиться на другие сайты

  • 1 год спустя...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.