IzerodayI Опубликовано 23 августа, 2017 Поделиться Опубликовано 23 августа, 2017 (изменено) теги(если не нужны то удалите) : Скрытый текст как вывести консоль в длл , консоль и длл , как вывести информацию из длл , работающая консоль в длл, как вывести консоль из длл взял код я у @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 если тему добавил не туда , прошу переместить =) Изменено 23 августа, 2017 пользователем IzerodayI Ссылка на комментарий Поделиться на другие сайты Поделиться
Dejavu Опубликовано 23 августа, 2017 Поделиться Опубликовано 23 августа, 2017 Если ты пишешь статью (тем более для новичков), нужно хотя бы описать для чего это, где это используется, показать на конкретном примере, пояснить каждую строчку кода. 2 Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 23 августа, 2017 Поделиться Опубликовано 23 августа, 2017 Я что-то вообще не понял почему ты решил добавить в раздел "статьи" да и еще для новичков. Почему не понял? Да потому что: 1. Ты ничего толком не объяснил. 2. Ты взял чужой код и добавил туда ОДНУ свою строчку. Что следует сделать: 1. Распиши все подробно 2. Продемонстрируй с скриншотами и прочим ( чтоб придать красивый внешний вид )* Так же название вообще не внятное "Консоль и ДЛЛ". Можно назвать было к примеру "Вывод данных DLL в консоль". Если тебе интересно добавить статью то сделай все как написал чуть выше. А тему я перенесу в "Быстрая информация" * - многие люди читают статьи выбирая их по содержанию сопровождающиеся картинками \ видео. 2 Ссылка на комментарий Поделиться на другие сайты Поделиться
IzerodayI Опубликовано 23 августа, 2017 Автор Поделиться Опубликовано 23 августа, 2017 37 минут назад, what228 сказал: А тему я перенесу в "Быстрая информация" хорошо , перенеси статью, я позже выложу по подробней(новою) Ссылка на комментарий Поделиться на другие сайты Поделиться
roma912 Опубликовано 23 августа, 2017 Поделиться Опубликовано 23 августа, 2017 (изменено) Скрытый текст #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 } } Готовый результат Изменено 23 августа, 2017 пользователем roma91212 Исправил положение коммента Ссылка на комментарий Поделиться на другие сайты Поделиться
roma912 Опубликовано 23 августа, 2017 Поделиться Опубликовано 23 августа, 2017 (изменено) 1 минуту назад, uhx сказал: @roma91212 imgui тестишь?) Угу, только ресайз не работает), поможешь?) Пс сейчас в лс отпишу Изменено 23 августа, 2017 пользователем roma91212 Ссылка на комментарий Поделиться на другие сайты Поделиться
uhx Опубликовано 23 августа, 2017 Поделиться Опубликовано 23 августа, 2017 3 минуты назад, roma91212 сказал: Угу, только ресайз не работает), поможешь?) Возьми какой-нибудь пример и разбери) По крайней мере так делают все, когда не получается что-то заставить работать) А у меня времени к сожалению не так много, чтоб еще и с этим разбираться. Ссылка на комментарий Поделиться на другие сайты Поделиться
X86Jumps Опубликовано 23 августа, 2017 Поделиться Опубликовано 23 августа, 2017 для чего это нужно? не проще ли pipe создать? Ссылка на комментарий Поделиться на другие сайты Поделиться
Senpai Опубликовано 28 января, 2019 Поделиться Опубликовано 28 января, 2019 класс, давно искал Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения