Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

utworzenie klasy z elementami innych bibliotek, jak podzielic cpp i h

Ostatnio zmodyfikowano 2013-12-05 13:14
Autor Wiadomość
tookie009
Temat założony przez niniejszego użytkownika
utworzenie klasy z elementami innych bibliotek, jak podzielic cpp i h
» 2013-12-04 21:19:26
czesc, po okolo 3 miesiacach w koncu udalo mi sie dostac Curla, tak ze wszystko dziala ;) NA poczatek przedstawie moze sytuacje mnie wiecej:

Chce zrobic aplikacje okienkowa w qt. Ogolem do obslugi calego okienka mam jedna klase, ktora wykorzystuje w main. Ale na konkretne przyciski chcialbym korzystac z innej klasy,  a mianowicie klasy, ktora bedzie odpowiedzialna za pobieranie kodu stronki, nastepnie go przerabianie. Czyli poki co klasa odpowiedzialna za nasze okienko nas nie interesuje. Chodzi o ta do przerabiania kodu strony (jako osobny thread, ale to takze potem). Moim problemem jest to, ze nie mam pojecia, jak zainicjozowac curl_global_init(CURL_GLOBAL_DEFAULT);

 
C/C++
#ifndef glowa_H
#define glowa_H
#include "include/curl/curl.h"
#include    "include/libxml/tree.h"
#include <iostream>
#include <string>
#define key a4582aec2

class kokosxml
{
public:
   
    static const int sig;
    kokosxml();
    void initt();
private:
   
};

#endif //glowa_H

 
C/C++
#include "glowa.h"
#include <string>
CURL * curlz;
CURLcode res;
curl_global_init( CURL_GLOBAL_DEFAULT );
/*
char a[111];
strcpy(a,"FSDDFDSFDSF");
// curl = curl_easy_init();
curl_global_init(CURL_GLOBAL_DEFAULT);      wszystko co probowalem ;)
//kokosxml::curl=curl_easy_init();     
CURL curl=curl_easy_init();
//res=curl_easy_perform(curl);
*/
// CURL kokosxml::curlz=curl_easy_init();


void glowa::initt()
{ //curlz=curl_easy_init();
    //curl = curl_easy_init();
}

glowa::kokosxml()
{
}


1. gdzie powinienem zainicjalizowac curla, w powyzszym przykladzie dostaje blad:
(w sumie przesiadlem sie na qt creatora z vs i myslalem, ze zle dolinkowalem curla, ale wtedy bym dostal cos, ze nie znaleziono wcale)

c4430 missing type specifier - int assumed. Note: C++ does not support default-int
 
2. co umieszczac w funkcji main, wydaje mi sie, ze tylko klase odpowiedzialna za okienko, ale wtedy to moje main wcale jakby nei bylo main, wyglada tak:


 
C/C++
#include "tokokiekos.h"
#include <QApplication>

int main( int argc, char * argv[] )
{
    QApplication a( argc, argv );
    tokokiekos w;
    w.show();
   
    return a.exec();
}

3. z tego wychodzi moje 3. pytanie, czy ogolem dobrze planuje sobie ten program skonstruowac? Dopiero ucze sie objektoorientownosci.


EDIT.
przespalem sie z tym, i mysle ze utworze klase osobna, ktora bedzie korzystala z curla i libxml, i zwracala tylko wynik, zatem bedzie tak: nowa klasa przerabiajaca wszystko co sie tyczy curla i libxml, majaca funkcje publiczna, ktora zwraca mnie interesujace dane -> klasa do uruchomienia watku -> klasa okienka -> funkcja main. Jezeli ktos ma lepsza idee albo myle cos w objektoorienowosci, prosze meldowac;)
P-98364
Adik80
» 2013-12-05 12:39:34
Nie mozesz wolac funkcji poza blokiem kodu, stad blad kompilatora.

Mozesz uwtorzyc kalse MyApplication, w konstruktkorze wywolac init curla, a main wygladalby jakos tak:

int main(int argc, char** argv)
{
  MyApplication app(argc, argv);
  return app.run();
}
P-98398
tookie009
Temat założony przez niniejszego użytkownika
» 2013-12-05 13:14:21
przeciez nie wywoluje poza blokiem kodu. Myslisz poza blokiem funkcji? Z tego co pamietam, tak tez dostawalem bledy, ale teraz nie mam jak tego sprawdzic (na wieczor napisze, co za blad mi wyskakiwal). Do xml znalazlem tez biblioteczke w qt, takze nie bede jeszcze dowiazywal libxml2.
P-98399
« 1 »
  Strona 1 z 1