Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Минимальное приложенте. С++. (https://forum.antichat.xyz/showthread.php?t=40325)

x-treem 18.05.2007 18:39

Минимальное приложенте. С++.
 
Помогите чайнику. Начинаю учить С++.
Как можно сделать приложение, которое просто висит в процессах, но без всяких око и не грузит систему.

tclover 18.05.2007 18:45

что такое "но без всяких око"?

je0n 18.05.2007 18:47

Код:

#include <iostream.h>

int main()
{
while(1)
{
}
return 0;
}

типа так чтоле :)

x-treem 18.05.2007 18:53

око - это окон))
Je0n - твой код сильно грузит систему.
так же вылазит консольное окошко. а надо чтобы программа только висела в процессах.
во как.

madnet 18.05.2007 18:56

je0n, а зачем циклом загружать ЦП на 99%

Лучше уж
Код:

#include <conio.h>
int main()
{
getch();
return 0;
}


madnet 18.05.2007 19:07

Цитата:

Сообщение от x-treem
око - это окон))
Je0n - твой код сильно грузит систему.
так же вылазит консольное окошко. а надо чтобы программа только висела в процессах.
во как.


Ну вот те без окон, создаеш симпл win32
Код:

#include "stdafx.h"

int APIENTRY WinMain(HINSTANCE hInstance,
                    HINSTANCE hPrevInstance,
                    LPSTR    lpCmdLine,
                    int      nCmdShow)
{
            MessageBox(0,"heck","XeK",MB_OK);
        return 0;
}

И пиши в теле что тебе надо, если постоянный надо вешай событие на таймер

invlose 18.05.2007 19:23

PHP код:

#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 все компилируется ок


сорри - не заметил предыдущий пост

x-treem 18.05.2007 19:40

Цитата:

Сообщение от iNVLose
PHP код:

#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

nerezus 18.05.2007 19:49

Цитата:

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

x-treem 19.05.2007 16:52

ясно))

invlose 19.05.2007 17:10

x-treem


PHP код:

MSG  msg;. //точку убери=)))) 


x-treem 19.05.2007 18:06

убирал конечно же... не помогло))

invlose 19.05.2007 18:15

debug ? release

(у меня релиз)

_Great_ 19.05.2007 22:50

#include <windows.h>
main()
{
Sleep(-1);
}

Загрузка ЦП 0% потому как поток исключается из планировщика из-за ожидания бесконечного

nerezus 20.05.2007 10:05

Цитата:

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."

_Great_ 20.05.2007 10:11

Слушай, нер, ты всегда такой правильный, или прикидываешься?

x-treem 20.05.2007 11:48

http://www.uinc.ru/articles/28/ - вот значит статья. про минимальное приложение. всё толково и по полкам.
НО! у мну получился вот такой код:
PHP код:

#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.
может кто нить знает почему такой огромный размер?

_Great_ 20.05.2007 11:50

Цитата:

при компиляции размер программы составляет 75 кб а не 1 обещанный. компилирую Визуалкой 6.0.
может кто нить знает почему такой огромный размер?
Читай тему "Кодерские tips and tricks" в этом разделе, мои посты.

ЗЫ. То, что ты написал - под твои же критерии не походит.

_Great_ 20.05.2007 11:52

Кстати, пока ты только изучаешь С++, лучше не делай ничего из того, что написано про минимизацию размера. НАСТОЯТЕЛЬНО рекомендую!!

x-treem 20.05.2007 11:56

я понимаю что не подходит, но самое интересное что размер 75 кб. хотя должно быть 1(

_Great_ 20.05.2007 11:58

Я тебе еще раз говорю, сейчас об этом лучше не заморачивайся.

Ro$k-0 20.05.2007 11:59

Если нужна консоль без окна,то:

Код:

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;
}


_Great_ 20.05.2007 12:21

Жуткий изврат.
Ввиду того, что каждый тут хочет померяться один местом, тема закрыта.


Время: 22:29