Programiranje u C++-u - pitanja i odgovori izdvojena tema

poruka: 7.285
|
čitano: 1.712.181
|
moderatori: Lazarus Long, XXX-Man, vincimus
+/- sve poruke
ravni prikaz
starije poruke gore
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
royalhero kaže...

Opet ti nešto sa C++ Builderom, sumnjam da ga baš on koristi.

To nas on pokušava konvertirati pokazujući nam koliko je kraće kada se koristi VCL.

{#}

 

Opustite se malo, nema potrebe da si svi odmah međusobno skačemo za vrat.

0xBADC0DE
13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Ma bio je smajli, pa sam ga izbrisao {#}.

Ne skačem za vrat, baš sam se nasmijao kad sam ugledao T prefiks ispred klase. {#}

14 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
royalhero kaže...

Opet ti nešto sa C++ Builderom, sumnjam da ga baš on koristi.

Možda sam prethodno tebe trebao konzultirati da mi ti kažeš u kojem obliku da napišem rješenje?

Kada lajavci laju onda završe ovako: http://i471.photobucket.com/albums/rr77/toropreto/2012-07-0813_30_07.gif
13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Skuliraj.

 

Samo sam mislio da nema smisla da mu pokazivaš nešto iz VCL-a, jer će on to možda napisati u svojoj aplikaciji koja nema veze sa VCL-om i razbijat će glavu što mu ne radi.

 

Fali smajlija. {#}

{#}{#}{#}

 

EDIT: bio sam napisao VLC. {#}

Poruka je uređivana zadnji put pon 15.4.2013 18:04 (royalhero).
14 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
royalhero kaže...

Skuliraj.

 

Samo sam mislio da nema smisla da mu pokazivaš nešto iz VLC-a, jer će on to možda napisati u svojoj aplikaciji koja nema veze sa VLC-om i razbijat će glavu što mu ne radi.

Sad si i opak postao?

 

Nemaš ti što misliti. Odi na google i pogledaj što su streamovi, na što se dijele i kako se koriste. To što je ispred klase "T" je sasvim nebitno jer sam mu pokazao princip, a ekvivalentnu klasu nije problem naći bez obzira kakvo razvojno okruženje koristi. Primjerice, .NET ima također svoj ekvivalent (mislim da se zove baš ResourceStream klasa) itd.

 

Aplikacija ne mora imati nikakve veze s VCL-om jer kad se uči programirati ne uči se source code već ispravan pristup, a to je u ovom slučaju: spremiti resurs u stream, a zatim stream u datoteku.

Kada lajavci laju onda završe ovako: http://i471.photobucket.com/albums/rr77/toropreto/2012-07-0813_30_07.gif
13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
TracerCPP kaže...

Nemaš ti što misliti. Odi na google i pogledaj što su streamovi, na što se dijele i kako se koriste. To što je ispred klase "T" je sasvim nebitno jer sam mu pokazao princip, a ekvivalentnu klasu nije problem naći bez obzira kakvo razvojno okruženje koristi. Primjerice, .NET ima također svoj ekvivalent (mislim da se zove baš ResourceStream klasa) itd.

 

Aplikacija ne mora imati nikakve veze s VCL-om jer kad se uči programirati ne uči se source code već ispravan pristup, a to je u ovom slučaju: spremiti resurs u stream, a zatim stream u datoteku.

Zove se ResourceManager (u .NET-u) (nismo mislili na isto), znam da je ne bitno, što se ljutiš?

 

Svi koji smo aktivni u podforumu programiranje znamo da imaš original C++ Builder (znam da si ga platio 1200€), pa te zato malo zezam, ne moraš se ljutiti.

Poruka je uređivana zadnji put pon 15.4.2013 20:57 (royalhero).
14 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

 

EDIT: I inače, kad već govorimo o VCL-u da bacim bombu (moj youtube kanal). {#}

Kada lajavci laju onda završe ovako: http://i471.photobucket.com/albums/rr77/toropreto/2012-07-0813_30_07.gif
Poruka je uređivana zadnji put pon 15.4.2013 18:36 (TracerCPP).
12 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
rustweaver kaže...
cpp freak kaže...

Imam fajl od 1 MB koji bi trebao doći uz exe. I htio bi ga nekako embedati u exe, pa pri početku izvršavanja programa extractati u isti folder kao i moj exe.

Opet resursi. Ekstraktiranje nije potrebno jer ćeš dobiti pointer na blok memorije u koji je učitana ta tvoja embeddana datoteka, pa možeš odmah raditi s time umjesto da prvo ekstraktiraš na disk pa onda učitavaš s diska.

 

http://blog.kowalczyk.info/article/zy/Embedding-binary-resources-on-Windows.html

napravio sam ovo, i vidim da je exe porasao na oko 1,5 MB (to znači da je file najvjerojatnije unutra), no funkcija FindResource mi vraća NULL. U nju kao onu varijablu g_hInstance šaljem prvi parametar iz 

int WINAPI WinMain (HINSTANCE hThisInstance,

           HINSTANCE hPrevInstance,

           LPSTR lpszArgument,

           int nCmdShow)

 

jel to pravilno radim...?

14 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

A u čemu ti uopće radiš? Koju biblioteku koristiš?

Kada lajavci laju onda završe ovako: http://i471.photobucket.com/albums/rr77/toropreto/2012-07-0813_30_07.gif
Moj PC  
0 0 hvala 0
17 godina
offline
Programiranje u C++-u - pitanja i odgovori

Ma stream kao stream , netko je spomenuo C# i streamove

 

using(StreamWriter writer = File:CreateText("datoteka.txt")

{

     wrter.WriteLine("Pa ovaj koncept je @Tracer pokazao, bitan je koncept, a ne kod, i to je svugdje isto i ispravno");

}

 

- otvaranje streama

- pisanje streamom u datoteku

- zatvaranje streama

Poruka je uređivana zadnji put pon 15.4.2013 19:01 (Floki).
 
1 0 hvala 0
12 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

pišem u codeblocksu i embedam .jpg datoteku

 
0 0 hvala 0
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
cpp freak kaže...
jel to pravilno radim...?

Prvi argument ti je ok, a ostali?

Nešto si fulao...

 

FindResource(GetModuleHandle(NULL), MAKEINTRESOURCE(ID_NEŠTO), RT_RCDATA);

 

GetModuleHandle(NULL) možeš koristiti kada nemaš već handle pri ruci (ti imaš), zadnji argument bi trebao odrediti vrstu resursa čiji handle pokušavaš dobiti, u tvom slučaju to bi trebao biti RT_RCDATA, što ti ostavlja drugi argument kao jedino mjesto gdje možeš nešto zasrati...

 

Kada neka funkcija ne uspije, možeš uvijek pozvati i GetLastError kako bi dobio errorcode i skužio o čemu se radi...

0xBADC0DE
Poruka je uređivana zadnji put pon 15.4.2013 19:11 (rustweaver).
12 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

uploadao sam codeblocks projekt, molim vas pogledajte :)

 

http://www.mediafire.com/download.php?ztdquc2p5j6i83z

 
0 0 hvala 0
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
cpp freak kaže...

uploadao sam codeblocks projekt, molim vas pogledajte :)

#define MY_RESOURCE 300

Super definirao si makro, a da ga za promjenu i iskoristiš pri pakiranju resursa u datoteku? :D

 

Dakle prva linija resource.rc datoteke bi ti trebala sadržavati:

#include "header.h"

 

Zato što resource kompajler nema pojma kolika bi trebala biti vrijednost MY_RESOURCE identifikatora (pa ga po defaultu vjerojatno postavi na nulu), tek kad ti dodaš header onda on skuži da je MY_RESOURCE zapravo makro koji ima vrijednost 300, pa onda iskoristi tu vrijednost.

 

Što se tebi dogodilo je da si pokušavao učitati resurs sa indeksom 300, koji se u stvarnosti nalazio na indeksu 0, ergo FindResource nije uspio jer ga nije pronašao tamo gdje si mu ti rekao da se nalazi...

0xBADC0DE
Poruka je uređivana zadnji put uto 16.4.2013 0:18 (rustweaver).
14 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Kako izdvojiti 5. cifru iz trinaestocifrenog broja..

http://www.bug.hr/forum/topic/softver-literatura-usluge/prodaja-knjige-hardware/103166.aspx
 
0 0 hvala 0
14 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

char sbroj[20];
int znamenka;
long long broj = 123456789012345;

sprintf(sbroj, "%I64d", broj);
cout << "Koju znamenku zelite: ";
cin >> znamenka;
cout << sbroj[znamenka - 1];

Kada lajavci laju onda završe ovako: http://i471.photobucket.com/albums/rr77/toropreto/2012-07-0813_30_07.gif
14 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
TracerCPP kaže...

char sbroj[20];
int znamenka;
long long broj = 123456789012345;

sprintf(sbroj, "%I64d", broj);
cout << "Koju znamenku zelite: ";
cin >> znamenka;
cout << sbroj[znamenka - 1];

Tako i ja znam.. :)

Al mi treba kao npr..neka formula

int n;

cin>>n;

a=?

 

a=taj broj 5.

 

http://www.bug.hr/forum/topic/softver-literatura-usluge/prodaja-knjige-hardware/103166.aspx
Poruka je uređivana zadnji put čet 18.4.2013 14:10 (Intelovac123).
14 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Pa napravi funkciju koja vraća gornji rezultat.

Kada lajavci laju onda završe ovako: http://i471.photobucket.com/albums/rr77/toropreto/2012-07-0813_30_07.gif
17 godina
offline
Programiranje u C++-u - pitanja i odgovori

Očito bi htio i funkciju na pijatu{#}

 
0 0 hvala 0
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
Intelovac123 kaže...

Tako i ja znam.. :)

Al mi treba kao npr..neka formula

Treba i meni SIMD optimizirani alpha compositing, pa ne očekujem da mi ga netko drugi nakucka...

 

Da bi mogao izvući N-tu znamenku (gledajući broj s lijeva na desno), onda prvo moraš znati sveukupan broj znamenki u broju. Kada ideš s desna na lijevo onda nije problem izvući N-tu znamenku, jer ne moraš znati sveukupan broj znamenki...

 

Da bi dobio broj znamenki u broju prvo izračunaš logaritam sa bazom 10 tog broja, koji onda zaokružiš na najniži cijeli broj koristeći floor funkciju, te onda taj broj uvećaš za jedan. Dalje samo koristiš cijelobrojno dijeljenje i modulo operator kako bi dobio traženu znamenku.

 

Ako ti se od ovoga što sam upravo napisao zavrtjelo u glavi i ništa ti nije jasno, onda koristi tracerovo rješenje (koje je jednostavno i elegantno) jer je očito ovdje riječ o razini matematike koju još nisi učio.

 

Nije mi jasno. Od toliko mogućih kompliciranih zadataka za koje je dovoljno minimalno znanje matematike, vas nekolicina redovito udara po zadatcima koji su minimalno programski komplicirani a traže nešto veće znanje matematike. Jel vam to neki fetiš ili vas samo profesor mrzi?

0xBADC0DE
Poruka je uređivana zadnji put čet 18.4.2013 16:11 (rustweaver).
17 godina
offline
Programiranje u C++-u - pitanja i odgovori

Ma kakvo mu je to uopće pitanje, 5. cifra????

Od kud 5., slijeva, desna, od sredine??????

 

Zašto ne koristi matematičku notaciju kao sav normalan svijet - što hoće u stvari? Znamenku na mjestu 10^4 ili 10^8, e pa nema nitko staklenu kuglu da to vidi.

 

Dobio je super rješenje koje bira poziciju indeksom polja, case closed.

 

 

Poruka je uređivana zadnji put čet 18.4.2013 17:15 (Floki).
 
2 0 hvala 0
12 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Nevezano za console C++, zanima me da li se itko pozabavio sa GUI-em u C++ (prvenstveno me zanima cross-platform GUI). Već duže vrijeme radim u Qt C++ i pišem generatore, sve to radi, međutim kod Qt-a je problem što moraš imati posebnu licencu da napraviš .exe/.dmg file osim za Linux. Kada sam prebacio projekt u Win i koristio minigw32 ja nikako ne mogu upogoniti tj. kompajlirati C++ nativno da radi samo sa .EXE file-om (qmake kompajler). Drugim riječima: http://stackoverflow.com/questions/4699311/how-to-install-qt-on-windows-after-building

 

Da li postoji neka druga alternativa? Da li se netko pozabavio sa "Lua"? Da li netko ima s tim iskustva? Podrzani GUI za Lua: http://lua-users.org/wiki/GraphicalUserInterfaceToolkits

 

Kad bi slozio toolkit za GUI, LUA podrzava:

 

GTK

Qt (LGPL with version 4.5) /medjutim aktualna verzija je 5.0 i već je komercijaliziran/

FLTK

Tk (gitgui je pisan sa Tcl/Tk)

 

Dakle koji je najbolji toolkit za crossplatform i da zaista rade ili ako ima netko nekakav tutorial kako pisati sam GUI toolkit za LUA/C++ i to jos da radi cross-platform?

Moj PC  
0 0 hvala 0
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
marin_sagovac kaže...

međutim kod Qt-a je problem što moraš imati posebnu licencu da napraviš .exe/.dmg file osim za Linux.

Ha? Ne. QT se može licencirati na dva načina LGPL i komercijalno. Komercijalnu licencu moraš koristiti kada se ne možeš držati uvjeta koje LGPL licenca određuje.

 

marin_sagovac kaže...

Kada sam prebacio projekt u Win i koristio minigw32 ja nikako ne mogu upogoniti tj. kompajlirati C++ nativno da radi samo sa .EXE file-om (qmake kompajler). Drugim riječima: http://stackoverflow.com/questions/4699311/how-to-install-qt-on-windows-after-building

Nije mi uopće jasno kakav problem imaš. Ne možeš kompajlirati QT na windowsima? Ne znaš kako instalirati već kompajlirane biblioteke? Ne znaš koristiti kompajlirane biblioteke?

0xBADC0DE
12 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Jesi ikada radio sa Qt pod Linuxom i prebacio taj projekt na Windows Qt. Da li si pokusao podici projekt? E, to ne radi.

 

Naravno da ne radi. Medjutim kad prebacujes kod i kompajliras sa miniGW, nemozes kompajlirati standalone zbog libraryja koje koristi Qt. Na internetu ima brdo primjera kako kompajlirati nesto kao ovo http://techminded.net/blog/standalone-c-app-on-windows-with-qt-framework.html ali zelim cuti tko se bas s time bavio tko je provjereno isprobao.

Poruka je uređivana zadnji put čet 18.4.2013 17:19 (marin_sagovac).
Moj PC  
0 0 hvala 0
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
marin_sagovac kaže...

Jesi ikada radio sa Qt pod Linuxom i prebacio taj projekt na Windows Qt. Da li si pokusao podici projekt? E, to ne radi.

I dalje ne razumijem problem. Imaš linux projekt koji se linka sa import bibliotekama koje ti omogućavaju korištenje dinamičkih QT biblioteka. Ista stvar je i na windowsima, samo što sve linkaš sa windows verzijom QT biblioteka.

 

marin_sagovac kaže...

Naravno da ne radi. Medjutim kad prebacujes kod i kompajliras sa miniGW, nemozes kompajlirati standalone zbog libraryja koje koristi Qt. Na internetu ima brdo primjera kako kompajlirati nesto kao ovo http://techminded.net/blog/standalone-c-app-on-windows-with-qt-framework.html ali zelim cuti tko se bas s time bavio tko je provjereno isprobao.

Ono što ti nazivaš standalone je statičko linkanje i nije dozvoljeno LGPL licencom.

 

Zar je toliki problem buildati dinamičke QT biblioteke (windows dll-ove) i onda njih koristiti u svom programu? Gotovo svaki windows QT program koji sam koristio je dinamički linkan sa QT bibliotekama.

0xBADC0DE
Poruka je uređivana zadnji put čet 18.4.2013 17:39 (rustweaver).
12 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

E na taj sam ja dio mislio!

 

"

Ono što ti nazivaš standalone je statičko linkanje i nije dozvoljeno LGPL licencom.

 

Zar je toliki problem buildati dinamičke QT biblioteke (windows dll-ove) i onda njih koristiti u svom programu? Gotovo svaki windows QT program koji sam koristio je dinamički linkan sa QT bibliotekama.

"

 

Dakle to je razlog zasto ne bih trebao koristiti Qt. Iako se moze buildati statički koristeći DLL fileove, zanima me da li si radio neki primjer koji zaista radi?

Moj PC  
0 0 hvala 0
16 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
marin_sagovac kaže...

Jesi ikada radio sa Qt pod Linuxom i prebacio taj projekt na Windows Qt. Da li si pokusao podici projekt? E, to ne radi.

 

Naravno da ne radi. Medjutim kad prebacujes kod i kompajliras sa miniGW, nemozes kompajlirati standalone zbog libraryja koje koristi Qt. Na internetu ima brdo primjera kako kompajlirati nesto kao ovo http://techminded.net/blog/standalone-c-app-on-windows-with-qt-framework.html ali zelim cuti tko se bas s time bavio tko je provjereno isprobao.

Daj pojsni ponovo. Niti nakon ovog drugog posta mi nije nimalo jasno gdje imaš problem.Ja konkretno u Qt-u radim već dosta dugo. Doma mi je mašina win7 a radim najviše za android koji se vrti na linux-u -> port ide preko necessitas projekta , pisao sam već o tome dosta u par tema niže. Uz to imam i na win7 redovan Qt Creator (+ mingw pogon) , prije toga radio s visual studiom + qt vs plugin.

Svaka aplikacija koju nakucaš u win kjutu bazično je u tili čas prenosiva na linux. Naravno da ima malih problema , konkretizirat ću :: na linuxu imaš openGL ko iz pi.ke odmah , na win-u moraš ići preko glew-a(skineš glew , kompajliraš ga toolchainom mingw-a koji koristiš i to je to -> GL radi kako spada) , na linuxu imaš prejaki valgrind , e na win-u ga nemaš osim ako ideš na remote checking itd...

Daj pojasni jer namam zapravo balge dume što te muči a vidim da si na Qt-u pa bih rado pomogao. Moji su projekti cca par kila koda do desetke i nikad nikakvog problema , šaltam s linuxa na win  , natrag -> sve OK.

Da li te zapravo muči pojam licenci a ne tehničke pojedinosti ? 

Dinamički build ti je osnova komercijale koju možš naplatiti a Qt si uzeo free , statički košta ali to bi trebalo proučiti licencu od prvog do zadnjeg slova.

 

http:/https://play.google.com/store/apps/details?id=org.kde.necessitas.example.SMASHHH
Poruka je uređivana zadnji put čet 18.4.2013 17:52 (nik_02).
16 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
rustweaver kaže...
marin_sagovac kaže...

Jesi ikada radio sa Qt pod Linuxom i prebacio taj projekt na Windows Qt. Da li si pokusao podici projekt? E, to ne radi.

I dalje ne razumijem problem. Imaš linux projekt koji se linka sa import bibliotekama koje ti omogućavaju korištenje dinamičkih QT biblioteka. Ista stvar je i na windowsima, samo što sve linkaš sa windows verzijom QT biblioteka.

 

marin_sagovac kaže...

Naravno da ne radi. Medjutim kad prebacujes kod i kompajliras sa miniGW, nemozes kompajlirati standalone zbog libraryja koje koristi Qt. Na internetu ima brdo primjera kako kompajlirati nesto kao ovo http://techminded.net/blog/standalone-c-app-on-windows-with-qt-framework.html ali zelim cuti tko se bas s time bavio tko je provjereno isprobao.

Ono što ti nazivaš standalone je statičko linkanje i nije dozvoljeno LGPL licencom.

 

Zar je toliki problem buildati dinamičke QT biblioteke (windows dll-ove) i onda njih koristiti u svom programu? Gotovo svaki windows QT program koji sam koristio je dinamički linkan sa QT bibliotekama.

 

Dok ja napisao , ti mu već odgovorio. 

Samo nadopuna , ne moraš ni buildat sam ništa , nek skine s digi-e prebuild qt i sve je  out of the box.

http:/https://play.google.com/store/apps/details?id=org.kde.necessitas.example.SMASHHH
Poruka je uređivana zadnji put čet 18.4.2013 17:57 (nik_02).
16 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
marin_sagovac kaže...

E na taj sam ja dio mislio!

 

"

Ono što ti nazivaš standalone je statičko linkanje i nije dozvoljeno LGPL licencom.

 

Zar je toliki problem buildati dinamičke QT biblioteke (windows dll-ove) i onda njih koristiti u svom programu? Gotovo svaki windows QT program koji sam koristio je dinamički linkan sa QT bibliotekama.

"

 

Dakle to je razlog zasto ne bih trebao koristiti Qt. Iako se moze buildati statički koristeći DLL fileove, zanima me da li si radio neki primjer koji zaista radi?

 

evo ti moj app

ako imaš android smartPhone skini i vidi

https://play.google.com/store/apps/details?id=org.kde.necessitas.example.SMASHHH

 

To ti je živi primjer dinamičkog bilda app-a s dinamičkim linknjem AKA nije standalone.

Predlažem ti da se držiš free dinamike pa jednog dana ako osjetiš da stvarno ima potrebe za komercijalnom verzijom , onda plati pa linkaj kako ti volja. 

http:/https://play.google.com/store/apps/details?id=org.kde.necessitas.example.SMASHHH
Poruka je uređivana zadnji put čet 18.4.2013 18:30 (nik_02).
14 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

O čemu se točno ovdje priča? O statičko-dinamičkom linkingu ili "build-u" dll-ova, jer za "build" još nisam čuo.

 

Edit: Kako god da bilo, statičko linkanje dll-a je moguće samo ako je uz dll prisutna i njena statička biblioteka (lib) te je krajnje jednostavno za izvesti. Dinamičko linkanje je već komplikacija i nije baš prikladno za dll pun globalnih funkcija jer za svaku od njih treba imati funkcijski pokazivač te "ručno" doći do adrese pojedine funkcije. Uz to i samostalno je potrebno učitati dll te ga kasnije "ručno" i "osloboditi" itd itd.. A da ne pričam o problemima ako su u dll-u eksportabilne klase tj. njene metode. Dinamičkim linkingom je to krajnje komplicirano za izvesti.

Kada lajavci laju onda završe ovako: http://i471.photobucket.com/albums/rr77/toropreto/2012-07-0813_30_07.gif
Poruka je uređivana zadnji put čet 18.4.2013 18:28 (TracerCPP).
Moj PC  
0 0 hvala 1
E-mail:
Lozinka:
 
vrh stranice