Просмотр полной версии : Минимальное приложенте. С++.
Помогите чайнику. Начинаю учить С++.
Как можно сделать приложение, которое просто висит в процессах, но без всяких око и не грузит систему.
что такое "но без всяких око"?
#include <iostream.h>
int main()
{
while(1)
{
}
return 0;
}
типа так чтоле :)
око - это окон))
Je0n - твой код сильно грузит систему.
так же вылазит консольное окошко. а надо чтобы программа только висела в процессах.
во как.
je0n, а зачем циклом загружать ЦП на 99%
Лучше уж
#include <conio.h>
int main()
{
getch();
return 0;
}
око - это окон))
Je0n - твой код сильно грузит систему.
так же вылазит консольное окошко. а надо чтобы программа только висела в процессах.
во как.
Ну вот те без окон, создаеш симпл win32
#include "stdafx.h"
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
MessageBox(0,"heck","XeK",MB_OK);
return 0;
}
И пиши в теле что тебе надо, если постоянный надо вешай событие на таймер
#include <windows.h>
/*Оригинал статьи - http://www.uinc.ru/articles/28/
исходник - http://www.uinc.ru/scripts/load.cgi?articles/28/winhider.zip*/
#pragma comment(linker,"/MERGE:.rdata=.text")
#pragma comment(linker,"/FILEALIGN:512 /SECTION:.text,EWRX /IGNORE:4078")
#pragma comment(linker,"/ENTRY:New_WinMain")
#pragma comment(linker,"/NODEFAULTLIB")
void New_WinMain(void)
{
MSG msg;.
while(GetMessage(&msg,NULL,0,0))
TranslateMessage(&msg), DispatchMessage(&msg);
ExitProcess(0);
}
Примечание : на MV C++6 все компилируется ок
сорри - не заметил предыдущий пост
#include <windows.h>
/*Оригинал статьи - http://www.uinc.ru/articles/28/
исходник - http://www.uinc.ru/scripts/load.cgi?articles/28/winhider.zip*/
#pragma comment(linker,"/MERGE:.rdata=.text")
#pragma comment(linker,"/FILEALIGN:512 /SECTION:.text,EWRX /IGNORE:4078")
#pragma comment(linker,"/ENTRY:New_WinMain")
#pragma comment(linker,"/NODEFAULTLIB")
void New_WinMain(void)
{
MSG msg;.
while(GetMessage(&msg,NULL,0,0))
TranslateMessage(&msg), DispatchMessage(&msg);
ExitProcess(0);
}
Примечание : на MV C++6 все компилируется ок
сорри - не заметил предыдущий пост
а у мну Dev C++. Не компилится:
[Linker error] undefined reference to `WinMain@16'
ld returned 1 exit status
C:\Dev-Cpp\Makefile.win [Build Error] [Pro.exe] Error 1
так же вылазит консольное окошко. а надо чтобы программа только висела в процессах. А это уже ты виноват, т.к. эта прога никакого консольного окошка не создает ;)
x-treem
MSG msg;. //точку убери=))))
убирал конечно же... не помогло))
debug ? release
(у меня релиз)
#include <windows.h>
main()
{
Sleep(-1);
}
Загрузка ЦП 0% потому как поток исключается из планировщика из-за ожидания бесконечного
main() Арр
Обязательно указавать типы. Доказательство: ISO 9899 6.7.2 "At least one type specifier shall be given in the declaration specifiers in each declaration, and in the specifier-qualifier list in each struct declaration and type name."
Слушай, нер, ты всегда такой правильный, или прикидываешься?
http://www.uinc.ru/articles/28/ - вот значит статья. про минимальное приложение. всё толково и по полкам.
НО! у мну получился вот такой код:
#include <windows.h>
#pragma comment(linker,"/MERGE:.rdata=.text")
#pragma comment(linker,"/FILEALIGN:512 /SECTION:.text,EWRX /IGNORE:4078")
#pragma comment(linker,"/ENTRY:New_WinMain")
#pragma comment(linker,"/NODEFAULTLIB")
void New_WinMain(void)
{
}
при компиляции размер программы составляет 75 кб а не 1 обещанный. компилирую Визуалкой 6.0.
может кто нить знает почему такой огромный размер?
при компиляции размер программы составляет 75 кб а не 1 обещанный. компилирую Визуалкой 6.0.
может кто нить знает почему такой огромный размер?
Читай тему "Кодерские tips and tricks" в этом разделе, мои посты.
ЗЫ. То, что ты написал - под твои же критерии не походит.
Кстати, пока ты только изучаешь С++, лучше не делай ничего из того, что написано про минимизацию размера. НАСТОЯТЕЛЬНО рекомендую!!
я понимаю что не подходит, но самое интересное что размер 75 кб. хотя должно быть 1(
Я тебе еще раз говорю, сейчас об этом лучше не заморачивайся.
Если нужна консоль без окна,то:
int main()
{
#define MY_BUFSIZE 1024 // Размер буфера для заголовка консольного окна.
HWND hwndFound; // Это то, что будет возвращено.
char pszNewWindowTitle[MY_BUFSIZE]; // Уникальный заголовок окна.
char pszOldWindowTitle[MY_BUFSIZE]; // Изначальный заголовок окна.
GetConsoleTitle(pszOldWindowTitle, MY_BUFSIZE);
wsprintf(pszNewWindowTitle,"%d/%d",GetTickCount(),GetCurrentProcessId());
SetConsoleTitle(pszNewWindowTitle);
Sleep(40);
hwndFound=FindWindow(NULL, pszNewWindowTitle);
SetConsoleTitle(pszOldWindowTitle);
ShowWindow(hwndFound,SW_HIDE);
// а это бесконечный цикл
MSG msg;
while (GetMessage (&msg, NULL, 0, 0))
{
TranslateMessage (&msg);
DispatchMessage (&msg);
}
return 0;
}
Жуткий изврат.
Ввиду того, что каждый тут хочет померяться один местом, тема закрыта.
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot