Skocz do zawartości

C++


Rekomendowane odpowiedzi

Opublikowano

Dużo razy zaczynałem z c++ ale teraz chce zacząć i kontynuować i proszę o pomoc, wprowadzenie i takie tam.

 

No to zaczynam:

 

1. Jaki kompilator pobrać? Od kraka słyszałem że nie Dev C++ tylko jakiś inny bo to i tamto. Fajnie by było jakbyście podawali nazwę i link, ale do samej nazwy też możecie się ograniczyć, też będę wdzięczny.

2. Jak korzystać z Dll'i w C++? Jakiś opis, krok po kroku, czy namiary na jakiś artykuł proszę bo by sie przydal 39dll do c++.

3. Grafika. I tu jest najgorsze. Bo w c++ jak grafike to WinAPI i inne cuda. A mi wystarczyłaby tylko funkcja taka jak w gm'ie jest "draw_pixel" bo z tym wszystko da rade zrobic. Sobie porobic skrypty, czyli bodajże w c++ tj. function(draw_kwadrat) {for(icostamsralala){draw_pixel...)} no ale np juz bedzie trudno z obrazkiem bo nie wiem jak otworzyc z danej sciezki obrazek i go narysowac (pixel po pixelu).. No tak czy siak chciałbym to draw_pixel, a jeszcze lepiej jakbyscie podali jakis gotowy silnik graficzny z samymi podstawami ze rysuje podstawowe figury, text jak mu podam obrazek kazdej litery chociaz to juz sam moge zrobic no i wazna funkcja: rysowanie danego obrazka.

 

I takie pytanie ktore w sumie powinno byc na początku ale "dla zwały" dam na końcu: czy z moimi umiejętnościami i podejściem warto się za to brać?

Opublikowano

Code::blocks albo Visual C++

 

Naucz się biblioteki graficznej allegro to będziesz umiał obrazki wczytywać itp.

 

Nie znam twoich umiejętności, ale jeśli tyle razy zaczynałeś to już powinieneś znać odpowiedzi na te pytania.

Opublikowano

1. różne są :P najbardziej popularne ostatnio to codeblocks/visual

2. a to nie jest do gma?

3. proste api pod 2d hmm allegro/sdl?

 

i nie, najpierw sie poucz samych podstaw zanim sie wezmiesz za grafike

Opublikowano
a jeszcze lepiej jakbyscie podali jakis gotowy silnik graficzny z samymi podstawami ze rysuje podstawowe figury, text jak mu podam obrazek kazdej litery chociaz to juz sam moge zrobic no i wazna funkcja: rysowanie danego obrazka

:D ale byś się przeraził gdybyś zobaczył kod, nie chodzi o to że zły, tylko trudny do ogarnięcia dla amatora c++ niestety :/

Opublikowano

1. Microsoft Visual C++ Express Edition

2. Prosta sprawa - masz DLLa, liba, i headera - ładujesz i używasz funkcji do woli ;]

3. Grafikę możesz zrobić nawet prostą biblioteką Allegro, i uważaj... nie chodzi o to, że naładujesz program samymi pętlami... on jeszcze ma być optymalny (przynajmniej w miarę) ;]

 

Pytanie "dla zwały" - musisz ciężko pracować... oj ciężko.

 

E: ALE SIĘ SPÓŹNIŁEM ;|

Opublikowano

he co??? ja kożystam z dev c++ na bibliotece allegro i nie widze problemów środowisko idealne ale i tak nie długo kupuje książke bo to co jest w necie to nic tak ci szczerze powiem

kup sobie symfonie c++ a nie kursy w necie...

Opublikowano
kup sobie symfonie c++ a nie kursy w necie...

która jest w necie :>

ja się uczyłem tylko i wyłącznie z tego co znalazłem w sieci, żadnej ksiązki jak dotąd nie kupowałem, więc nie piernicz że w necie nc nie ma - trzeba umieć szukać konkretnych zagadnień najlepiej, a nie ogólne hasło rzucisz i myślisz że Ci encyklopedie rzuci :)

 

he co??? ja korzystam z dev c++ na bibliotece allegro i nie widzę problemów środowisko idealne

dla początkujących owszem, ale nie masz pojęcia jakich błędów nie wykrywa Dev. Mowiłem wiele razy, ale przytoczę to jeszcze raz - kiedyś byłem zapalonym hardkorem kochającym deva, ale odkąd przeniosłem silnik pod Visuala to uczucie wygasło - jak zobaczyłem jakie błędy wywala które dev olewał, to niemal natychmiast przeniosłem się na visuala, poza tym ma boski debugger <3

Opublikowano

wybrałem dev c++ bo w visual c++ jest jakiś inny schrzaniony c++ nie ma np count tylko jakies drawline console.

 

no a jak używać dll'i w dev c++? bo tak bezpośrednio wrzucić do projektu juz skompilowanego dll'a chyba nie mozna, nie?

Opublikowano

Nigdzie nie ma "count". Zresztą co ci za różnica co tam jest pod konsolę, jak masz zamiar robić projekty graficzne (czyt. korzystając z biblotek graficznych).

Opublikowano

Do c++ NIE dodaje się bibliotek w postaci DLL. To są już skompilowane biblioteki.

Potrzebujesz pliki nagłówkowe oraz pliki lib. Skąd? Zależy co chcesz zassać ;)

Opublikowano
wybrałem dev c++ bo w visual c++ jest jakiś inny schrzaniony c++ nie ma np count tylko jakies drawline console.

Dobre :D Po pierwsze "cout",. Po drugie C++ to jest język i jest taki sam niezależnie od IDE. Po trzecie możesz użyć cout, ale najpierw musisz "dodać" odpowiedni plik nagłówkowy. Polecam zapoznać się z podstawami języka.

Opublikowano
Do c++ NIE dodaje się bibliotek w postaci DLL. To są już skompilowane biblioteki.

Potrzebujesz pliki nagłówkowe oraz pliki lib. Skąd? Zależy co chcesz zassać ;)

Głupoty gadasz jeśli dll ma wyeksportowane funkcję to nie ma zadsnego problemu żeby się z poziomu kodu do niego odwoalac

Opublikowano

No tak, ale bardziej powszechne (i normalne) liby używa się w ten sposób :P Zresztą,. zależy co on dokładnie chce sobie podpiąć.

  • 2 tygodnie później...
Opublikowano

jak narazie chcę zrobic pewien program konsolowy, ale 39dll właśnie bym chciał wsadzić i najlepiej zeby juz poprostu w plik .exe był wpięty a nie ze w folderze z nim musi byc, no i jeszcze jakaś instrukcja raz jak to zrobić, dwa jak sobie zrobić funkcje, czy moze jak tego "lib-a" sie wezmie to juz sa gotowe funkcje?

Opublikowano

a jak to na konsole przełożyć bo z tym WinAPI taki syf jest że nie moge tego ogarnąć. cały kod związany z winapi wywaliłem ale i tak pod koniec musi coś tam zwrócić i jest źle i errory będą

e:

ja bym chciał żeby to było mniejwięcej tak:

 

#include to

#include tamto

/*

 

tutaj kod który tworzy te wszystkie funkcje

 

*/

 

...

 

/*

 

a tutaj już sobie piszę program

i chce mieć wszystkie funkcje z 39dll tak

samo jak w gm, a nie ze widzialem tam

w tym kodzie ze bylo receivemessage z trzema

arugmentami :(

 

*/

 

 

 

e2:

 

takie cos mam:

 

#include <windows.h>

#include <iostream>

#include <string>

#include <sstream>

 

 

typedef double (WINAPI *DLLINIT)();

typedef double (WINAPI *WRITEBYTE)(double, double);

typedef double (WINAPI *WRITESTRING)(char*, double);

typedef double (WINAPI *WRITESHORT)(double, double);

typedef double (WINAPI *WRITEINT)(double, double);

typedef double (WINAPI *WRITEFLOAT)(double, double);

typedef double (WINAPI *WRITEDOUBLE)(double, double);

typedef double (WINAPI *READBYTE)(double);

typedef char* (WINAPI *READSTRING)(double);

typedef double (WINAPI *READSHORT)(double);

typedef double (WINAPI *READINT)(double);

typedef double (WINAPI *READFLOAT)(double);

typedef double (WINAPI *READDOUBLE)(double);

typedef double (WINAPI *CLEARBUFFER)(double);

typedef double (WINAPI *SETPOS)(double, double);

typedef double (WINAPI *GETPOS)(double, double);

typedef double (WINAPI *BUFFSIZE)(double);

typedef double (WINAPI *WRITECHARS)(char*, double);

typedef char* (WINAPI *READCHARS)(double, double);

typedef double (WINAPI *CREATEBUFFER)();

typedef double (WINAPI *FREEBUFFER)(double);

typedef double (WINAPI *WRITEUSHORT)(double, double);

typedef double (WINAPI *WRITEUINT)(double, double);

typedef double (WINAPI *READUSHORT)(double);

typedef double (WINAPI *READUINT)(double);

typedef double (WINAPI *COPYBUFFER)(double, double);

typedef double (WINAPI *COPYBUFFER2)(double, double, double, double);

typedef double (WINAPI *BYTESLEFT)(double);

typedef double (WINAPI *BUFFEREXISTS)(double);

typedef char* (WINAPI *READSEP)(char*, double);

typedef double (WINAPI *TCPCONNECT)(char*, double, double);

typedef double (WINAPI *TCPLISTEN)(double, double, double);

typedef double (WINAPI *TCPACCEPT)(double, double);

typedef double (WINAPI *SENDMESSAGE)(double, char*, double, double);

typedef double (WINAPI *RECEIVEMESSAGE)(double, double, double);

typedef double (WINAPI *SETSYNC)(double, double);

typedef double (WINAPI *SETFORMAT)(double, double, char*);

typedef double (WINAPI *UDPCONNECT)(double, double);

typedef char* (WINAPI *HOSTIP)(char*);

typedef char* (WINAPI *LASTINIP)();

typedef double (WINAPI *CLOSESOCK)(double);

typedef char* (WINAPI *TCPIP)(double);

typedef double (WINAPI *SOCKLASTERROR)();

typedef char* (WINAPI *MYHOST)();

typedef double (WINAPI *COMPAREIP)(char*, char*);

typedef double (WINAPI *SOCKEXIT)();

typedef double (WINAPI *SOCKSTART)();

typedef char* (WINAPI *GETMACADDRESS)();

typedef double (WINAPI *PEEKMESSAGE)(double, double, double);

typedef double (WINAPI *SETNAGLE)(double, double);

typedef double (WINAPI *TCPCONNECTED)(double);

typedef double (WINAPI *GETSOCKETID)(double);

typedef double (WINAPI *LASTINPORT)();

typedef double (WINAPI *FILEOPEN)(char*, double);

typedef double (WINAPI *FILECLOSE)(double);

typedef double (WINAPI *FILEWRITE)(double, double);

typedef double (WINAPI *FILEREAD)(double, double, double);

typedef double (WINAPI *FILEPOS)(double);

typedef double (WINAPI *FILESETPOS)(double, double);

typedef double (WINAPI *FILESIZE)(double);

typedef char* (WINAPI *MD5STRING)(char*);

typedef char* (WINAPI *MD5BUFFER)(double);

typedef double (WINAPI *ADLER32)(double);

typedef double (WINAPI *BUFFERENCRYPT)(char*, double);

typedef double (WINAPI *IPTOUINT)(char*);

typedef char* (WINAPI *UINTTOIP)(double);

typedef double (WINAPI *NETCONNECTED)();

 

DLLINIT dllInit = NULL;

WRITEBYTE writebyte = NULL;

WRITESTRING writestring = NULL;

WRITESHORT writeshort = NULL;

WRITEINT writeint = NULL;

WRITEFLOAT writefloat = NULL;

WRITEDOUBLE writedouble = NULL;

READBYTE readbyte = NULL;

READSTRING readstring = NULL;

READSHORT readshort = NULL;

READINT readint = NULL;

READFLOAT readfloat = NULL;

READDOUBLE readdouble = NULL;

CLEARBUFFER clearbuffer = NULL;

SETPOS setpos = NULL;

GETPOS getpos = NULL;

BUFFSIZE buffsize = NULL;

WRITECHARS writechars = NULL;

READCHARS readchars = NULL;

CREATEBUFFER createbuffer = NULL;

FREEBUFFER freebuffer = NULL;

WRITEUSHORT writeushort = NULL;

WRITEUINT writeuint = NULL;

READUSHORT readushort = NULL;

READUINT readuint = NULL;

COPYBUFFER copybuffer = NULL;

COPYBUFFER2 copybuffer2 = NULL;

BYTESLEFT bytesleft = NULL;

BUFFEREXISTS bufferexists = NULL;

READSEP readsep = NULL;

TCPCONNECT tcpconnect = NULL;

TCPLISTEN tcplisten = NULL;

TCPACCEPT tcpaccept = NULL;

SENDMESSAGE sendmessage = NULL;

RECEIVEMESSAGE receivemessage = NULL;

SETSYNC setsync = NULL;

SETFORMAT setformat = NULL;

UDPCONNECT udpconnect = NULL;

HOSTIP hostip = NULL;

LASTINIP lastinIP = NULL;

CLOSESOCK closesock = NULL;

TCPIP tcpip = NULL;

SOCKLASTERROR socklasterror = NULL;

MYHOST myhost = NULL;

COMPAREIP compareip = NULL;

SOCKEXIT sockexit = NULL;

SOCKSTART sockstart = NULL;

GETMACADDRESS getmacaddress = NULL;

PEEKMESSAGE peekmessage = NULL;

SETNAGLE setnagle = NULL;

TCPCONNECTED tcpconnected = NULL;

GETSOCKETID getsocketid = NULL;

LASTINPORT lastinPort = NULL;

FILEOPEN fileopen = NULL;

FILECLOSE fileclose = NULL;

FILEWRITE filewrite = NULL;

FILEREAD fileread = NULL;

FILEPOS filepos = NULL;

FILESETPOS filesetpos = NULL;

FILESIZE filesize = NULL;

MD5STRING md5string = NULL;

MD5BUFFER md5buffer = NULL;

ADLER32 adler32 = NULL;

BUFFERENCRYPT bufferencrypt = NULL;

IPTOUINT iptouint = NULL;

UINTTOIP uinttoip = NULL;

NETCONNECTED netconnected = NULL;

 

HINSTANCE hLib;

 

 

hLib = LoadLibrary("39dll.dll"); // Tu jest pierwszy error nie wiem jak dalej

 

dllInit = (DLLINIT)GetProcAddress(hLib, "dllInit");

writebyte = (WRITEBYTE)GetProcAddress(hLib, "writebyte");

writestring = (WRITESTRING)GetProcAddress(hLib, "writestring");

writeshort = (WRITESHORT)GetProcAddress(hLib, "writeshort");

writeint = (WRITEINT)GetProcAddress(hLib, "writeint");

writefloat = (WRITEFLOAT)GetProcAddress(hLib, "writefloat");

writedouble = (WRITEDOUBLE)GetProcAddress(hLib, "writedouble");

readbyte = (READBYTE)GetProcAddress(hLib, "readbyte");

readstring = (READSTRING)GetProcAddress(hLib, "readstring");

readshort = (READSHORT)GetProcAddress(hLib, "readshort");

readint = (READINT)GetProcAddress(hLib, "readint");

readfloat = (READFLOAT)GetProcAddress(hLib, "readfloat");

readdouble = (READDOUBLE)GetProcAddress(hLib, "readdouble");

clearbuffer = (CLEARBUFFER)GetProcAddress(hLib, "clearbuffer");

setpos = (SETPOS)GetProcAddress(hLib, "setpos");

getpos = (GETPOS)GetProcAddress(hLib, "getpos");

buffsize = (BUFFSIZE)GetProcAddress(hLib, "buffsize");

writechars = (WRITECHARS)GetProcAddress(hLib, "writechars");

readchars = (READCHARS)GetProcAddress(hLib, "readchars");

createbuffer = (CREATEBUFFER)GetProcAddress(hLib, "createbuffer");

freebuffer = (FREEBUFFER)GetProcAddress(hLib, "freebuffer");

writeushort = (WRITEUSHORT)GetProcAddress(hLib, "writeushort");

writeuint = (WRITEUINT)GetProcAddress(hLib, "writeuint");

readushort = (READUSHORT)GetProcAddress(hLib, "readushort");

readuint = (READUINT)GetProcAddress(hLib, "readuint");

copybuffer = (COPYBUFFER)GetProcAddress(hLib, "copybuffer");

copybuffer2 = (COPYBUFFER2)GetProcAddress(hLib, "copybuffer2");

bytesleft = (BYTESLEFT)GetProcAddress(hLib, "bytesleft");

bufferexists = (BUFFEREXISTS)GetProcAddress(hLib, "bufferexists");

readsep = (READSEP)GetProcAddress(hLib, "readsep");

tcpconnect = (TCPCONNECT)GetProcAddress(hLib, "tcpconnect");

tcplisten = (TCPLISTEN)GetProcAddress(hLib, "tcplisten");

tcpaccept = (TCPACCEPT)GetProcAddress(hLib, "tcpaccept");

sendmessage = (SENDMESSAGE)GetProcAddress(hLib, "sendmessage");

receivemessage = (RECEIVEMESSAGE)GetProcAddress(hLib, "receivemessage");

setsync = (SETSYNC)GetProcAddress(hLib, "setsync");

setformat = (SETFORMAT)GetProcAddress(hLib, "setformat");

udpconnect = (UDPCONNECT)GetProcAddress(hLib, "udpconnect");

hostip = (HOSTIP)GetProcAddress(hLib, "hostip");

lastinIP = (LASTINIP)GetProcAddress(hLib, "lastinIP");

closesock = (CLOSESOCK)GetProcAddress(hLib, "closesock");

tcpip = (TCPIP)GetProcAddress(hLib, "tcpip");

socklasterror = (SOCKLASTERROR)GetProcAddress(hLib, "socklasterror");

myhost = (MYHOST)GetProcAddress(hLib, "myhost");

compareip = (COMPAREIP)GetProcAddress(hLib, "compareip");

sockexit = (SOCKEXIT)GetProcAddress(hLib, "sockexit");

sockstart = (SOCKSTART)GetProcAddress(hLib, "sockstart");

getmacaddress = (GETMACADDRESS)GetProcAddress(hLib, "getmacaddress");

peekmessage = (PEEKMESSAGE)GetProcAddress(hLib, "peekmessage");

setnagle = (SETNAGLE)GetProcAddress(hLib, "setnagle");

tcpconnected = (TCPCONNECTED)GetProcAddress(hLib, "tcpconnected");

getsocketid = (GETSOCKETID)GetProcAddress(hLib, "getsocketid");

lastinPort = (LASTINPORT)GetProcAddress(hLib, "lastinPort");

fileopen = (FILEOPEN)GetProcAddress(hLib, "fileopen");

fileclose = (FILECLOSE)GetProcAddress(hLib, "fileclose");

filewrite = (FILEWRITE)GetProcAddress(hLib, "filewrite");

fileread = (FILEREAD)GetProcAddress(hLib, "fileread");

filepos = (FILEPOS)GetProcAddress(hLib, "filepos");

filesetpos = (FILESETPOS)GetProcAddress(hLib, "filesetpos");

filesize = (FILESIZE)GetProcAddress(hLib, "filesize");

md5string = (MD5STRING)GetProcAddress(hLib, "md5string");

md5buffer = (MD5BUFFER)GetProcAddress(hLib, "md5buffer");

adler32 = (ADLER32)GetProcAddress(hLib, "adler32");

bufferencrypt = (BUFFERENCRYPT)GetProcAddress(hLib, "bufferencrypt");

iptouint = (IPTOUINT)GetProcAddress(hLib, "iptouint");

uinttoip = (UINTTOIP)GetProcAddress(hLib, "uinttoip");

netconnected = (NETCONNECTED)GetProcAddress(hLib, "netconnected");

 

using namespace std;

 

int main()

{

cout << "siema!" << endl;

return 0;

}

 

xD

Opublikowano

wrzuć źródła 39dll do swojego projektu i z nim przekompiluj, a z tamtego kursu korzystaj jako wskazówek co jak ma wyglądać aby działało. Oczywiście używając swojej nie wiadomo po co potrzebnej konsoli.

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...