Осваиваю библиотеку. Сложности.
-
- Super wx Problem Solver
- Posts: 362
- Joined: Wed Mar 07, 2007 8:10 am
- Location: Russia, Shakhty
Re: Осваиваю библиотеку. Сложности.
К какому фрейму? к MSCFrame? так таймер и принадлежит этому классу - MSCFrame ты просто this пробовал? Или я чего-то не понял
WinXP SP3, wx-2.8.10, MinGW-4.4.1, gdb-7.1.2, eclipse
Re: Осваиваю библиотеку. Сложности.
Ой... На написал самого главного
Ребята, в общем, не компилится код, если фрагмент, где находится обработчик, имеет такой вид:
Немного не пойму...
Ребята, в общем, не компилится код, если фрагмент, где находится обработчик, имеет такой вид:
Code: Select all
void MSCFrame::OnTimer( wxTimerEvent& event ){
// wxMessageBox( wxT( "This is a wxWidgets Hello world sample" ),
// wxT( "Сообщение от таймера" ), wxOK | wxICON_INFORMATION, this );
frame->SetStatusText(wxT("Test"));
// core(1, this);
};
Но, если так, то работает ( уже сегодня утром пробовал ):/root/Desktop/dev/MSC/src/msc.cpp:75: error: 'frame' was not declared in this scope
Code: Select all
void MSCFrame::OnTimer( wxTimerEvent& event ){
// wxMessageBox( wxT( "This is a wxWidgets Hello world sample" ),
// wxT( "Сообщение от таймера" ), wxOK | wxICON_INFORMATION, this );
// frame->SetStatusText(wxT("Test"));
core(1, this);
};
Code: Select all
//Командный процессор
void core(int com, MSCFrame *frame){
if ( com == 0 ){
// wxSleep(10);
frame->SetStatusText(wxT("Test"));
// wxMessageBox( wxT( "This is a wxWidgets Hello world sample" ), wxT( "About Hello World" ), wxOK );
};
if ( com == 1 ){
frame->SetStatusText(wxT("Test_timer"));
};
};
Немного не пойму...
OS: Slackware 12.2, IDE: KDevelop, xwWidgets version: 2.8.10, Compiler: GCC 4.2.4;
OS: Windows XP HE SP2 ( orig ), IDE: Code::Blocks 10.05, wxWidgets version: 2.8.12, Compiler: GCC 4.
OS: Windows XP HE SP2 ( orig ), IDE: Code::Blocks 10.05, wxWidgets version: 2.8.12, Compiler: GCC 4.
-
- Super wx Problem Solver
- Posts: 362
- Joined: Wed Mar 07, 2007 8:10 am
- Location: Russia, Shakhty
Re: Осваиваю библиотеку. Сложности.
У тебя рация не на лампах, а на броневике!
Нужно пробовать так
Если хочешь через frame его нужно вынести в глобальную переменную.
ЗЫ Этот вопрос к самим wxWidgets никакого отношения не имеет - это вопрос самого языка.
Нужно пробовать так
Code: Select all
this->SetStatusText(wxT("Test"));// или просто SetStatusText(wxT("Test"));
ЗЫ Этот вопрос к самим wxWidgets никакого отношения не имеет - это вопрос самого языка.
WinXP SP3, wx-2.8.10, MinGW-4.4.1, gdb-7.1.2, eclipse
Re: Осваиваю библиотеку. Сложности.
Заработало, спасибо большое...
Я где-то читал, что глобальные указатели — это плохо. Также у меня возникают проблемы, когда я пытаюсь объявить его, как "глобальный" — ошибка сегментации, падение приложения, когда срабатывает событие. Сделать по примеру,который мне привел Mojo, но проблема не пропала... Предполагаю, что это как-то связано с резервирование памяти под объект, но это вопрос уже точно по плюсах. Пока не критично... ( весной писал небольшую программку для работы с модемом, то такое частенько наблюдал ( начитался на эту тему )).
Просто, я изначально думал, что это как-то связано с наследование классов ( учитывалось, когда формировался пост )... А что, нельзя задавать вопросы про "чистый" C++, если дело все равно касается программирования на wxWidgets? Просто, я ранее не особо активно использовал классы, как инструмент программирования, и мне немного сложно, а фреймворк — библиотека классов.
Я где-то читал, что глобальные указатели — это плохо. Также у меня возникают проблемы, когда я пытаюсь объявить его, как "глобальный" — ошибка сегментации, падение приложения, когда срабатывает событие. Сделать по примеру,который мне привел Mojo, но проблема не пропала... Предполагаю, что это как-то связано с резервирование памяти под объект, но это вопрос уже точно по плюсах. Пока не критично... ( весной писал небольшую программку для работы с модемом, то такое частенько наблюдал ( начитался на эту тему )).
Просто, я изначально думал, что это как-то связано с наследование классов ( учитывалось, когда формировался пост )... А что, нельзя задавать вопросы про "чистый" C++, если дело все равно касается программирования на wxWidgets? Просто, я ранее не особо активно использовал классы, как инструмент программирования, и мне немного сложно, а фреймворк — библиотека классов.
OS: Slackware 12.2, IDE: KDevelop, xwWidgets version: 2.8.10, Compiler: GCC 4.2.4;
OS: Windows XP HE SP2 ( orig ), IDE: Code::Blocks 10.05, wxWidgets version: 2.8.12, Compiler: GCC 4.
OS: Windows XP HE SP2 ( orig ), IDE: Code::Blocks 10.05, wxWidgets version: 2.8.12, Compiler: GCC 4.
-
- Super wx Problem Solver
- Posts: 362
- Joined: Wed Mar 07, 2007 8:10 am
- Location: Russia, Shakhty
Re: Осваиваю библиотеку. Сложности.
Можно... я так на всякий случай... пнул слегка.baytuch wrote:А что, нельзя задавать вопросы про "чистый" C++, если дело все равно касается программирования на wxWidgets?
WinXP SP3, wx-2.8.10, MinGW-4.4.1, gdb-7.1.2, eclipse
Re: Осваиваю библиотеку. Сложности.
Понял, учтем...
OS: Slackware 12.2, IDE: KDevelop, xwWidgets version: 2.8.10, Compiler: GCC 4.2.4;
OS: Windows XP HE SP2 ( orig ), IDE: Code::Blocks 10.05, wxWidgets version: 2.8.12, Compiler: GCC 4.
OS: Windows XP HE SP2 ( orig ), IDE: Code::Blocks 10.05, wxWidgets version: 2.8.12, Compiler: GCC 4.
Re: Осваиваю библиотеку. Сложности.
Ребята, добрый день.
Извините, но я опять застрял. Пишу уже http - клиент. К слову, как раз с ним все нормально, но данные я получаю виде XML - документа... Немного полазил по мануалу и, к счастью, обнаружил, что wxWidgets имеет встроенный парсер, но воспользоваться им не могу... Судя по докам, этот класс способен работать с файлами и с потоком stream, который у меня есть... Но при попытке "подбросить" его парсеру, даже не компилится код -- компилер заявляет, что я пытаюсь подбросить не тот тип данных... Что еще скажу: спасайте, не работает... Конечно, мой сервер не генерит там больших документов, что не мешает сделать парсер "руками", но все же... Еще, как вариант, можно воспользоваться форматом "JSON" ( тоже реализовал, как резервный вариант ).
*как вы можете видеть, я строчки парсера закомментировал. При компиляции выдает:
Извините, но я опять застрял. Пишу уже http - клиент. К слову, как раз с ним все нормально, но данные я получаю виде XML - документа... Немного полазил по мануалу и, к счастью, обнаружил, что wxWidgets имеет встроенный парсер, но воспользоваться им не могу... Судя по докам, этот класс способен работать с файлами и с потоком stream, который у меня есть... Но при попытке "подбросить" его парсеру, даже не компилится код -- компилер заявляет, что я пытаюсь подбросить не тот тип данных... Что еще скажу: спасайте, не работает... Конечно, мой сервер не генерит там больших документов, что не мешает сделать парсер "руками", но все же... Еще, как вариант, можно воспользоваться форматом "JSON" ( тоже реализовал, как резервный вариант ).
Code: Select all
#include <wx/wx.h>
#include <wx/socket.h>
#include <wx/sstream.h>
#include <wx/protocol/http.h>
#include "http_client.h"
#include "extern_variables.h"
#include <wx/xml/xml.h>
bool socket(){
wxHTTP get;
get.SetHeader(wxT("Content-type"), wxT("text/html; charset=utf-8"));
get.SetHeader(wxT("User-Agent"), wxT("MSC"));
get.SetTimeout(10);
if ( get.Connect(wxT("vps.my-services.km.ua")) == false ){
return false;
};
wxInputStream *stream = get.GetInputStream(wxT("/api/index.php?com=time&format=xml"));
char* data = new char[1024];
stream->Read(data, 1024);
sys_string[10] = wxString::FromUTF8(data, 1024);
//XML-parser
/*
wxXmlDocument *xmlDoc;
wxXmlNode *root_node, *tmp_node;
xmlDoc = new wxXmlDocument();
xmlDoc->Load(stream, wxT("UTF-8"), wxXMLDOC_NONE);
root_node = xmlDoc->GetRoot();
*/
return true;
};
/root/Desktop/dev/MSC/src/http_client.cpp:53: error: conversion from 'wxInputStream*' to 'const wxString' is ambiguous
OS: Slackware 12.2, IDE: KDevelop, xwWidgets version: 2.8.10, Compiler: GCC 4.2.4;
OS: Windows XP HE SP2 ( orig ), IDE: Code::Blocks 10.05, wxWidgets version: 2.8.12, Compiler: GCC 4.
OS: Windows XP HE SP2 ( orig ), IDE: Code::Blocks 10.05, wxWidgets version: 2.8.12, Compiler: GCC 4.
-
- Super wx Problem Solver
- Posts: 362
- Joined: Wed Mar 07, 2007 8:10 am
- Location: Russia, Shakhty
Re: Осваиваю библиотеку. Сложности.
Конечно кто ж тебе сказал что в ImputSteam просто так можно строку засунуть. И вообще не понятно чего ты хочешь
Вот пример из доков по wxURL.
Может нужно что-т типа wxInputStream *stream = get.GetInputStream().
Обрати внимание wxHTTP wxFTP не работают через Proxy. Хотя в wiki есть SetProxyMode но что с ним дальше делать я так и не понял
http://wiki.wxwidgets.org/WxHTTP
Вот пример из доков по wxURL.
Code: Select all
wxURL url("http://a.host/a.dir/a.file");
if (url.GetError() == wxURL_NOERR)
{
wxInputStream *in_stream;
in_stream = url.GetInputStream();
// Then, you can use all IO calls of in_stream (See wxStream)
}
Обрати внимание wxHTTP wxFTP не работают через Proxy. Хотя в wiki есть SetProxyMode но что с ним дальше делать я так и не понял
http://wiki.wxwidgets.org/WxHTTP
WinXP SP3, wx-2.8.10, MinGW-4.4.1, gdb-7.1.2, eclipse
Re: Осваиваю библиотеку. Сложности.
Задача: подключится к хосту, который работает по протоколу HTTP 1.1; выполнит GET - запрос; получить документ ( XML - документ ); распорсить и отправить в extern-массив, возвратив true ( false - в случае ошибки )...
Но у меня практически все, как на этом примере. Забыл закрыть соединение, но з запросами все норм, так как данные я получаю ( это же заготовка )... Собсно вопрос в другом...
--------------------------------
"Звездочки" не хватало...
-------------------------------
Прокси мне не нужно, честно говоря, а вот SSL — очень даже... Но пока не просветлялся на эту тему...
Народ, в общем, как-то выходит чет понемногу... Спасибо за подсказки, сам, наверное, еще бы долго гостил в Гугляндии
Но у меня практически все, как на этом примере. Забыл закрыть соединение, но з запросами все норм, так как данные я получаю ( это же заготовка )... Собсно вопрос в другом...
--------------------------------
"Звездочки" не хватало...
Code: Select all
xmlDoc->Load(*stream, wxT("UTF-8"), wxXMLDOC_NONE);
-------------------------------
Прокси мне не нужно, честно говоря, а вот SSL — очень даже... Но пока не просветлялся на эту тему...
Народ, в общем, как-то выходит чет понемногу... Спасибо за подсказки, сам, наверное, еще бы долго гостил в Гугляндии
Last edited by baytuch on Wed Aug 29, 2012 11:08 am, edited 1 time in total.
OS: Slackware 12.2, IDE: KDevelop, xwWidgets version: 2.8.10, Compiler: GCC 4.2.4;
OS: Windows XP HE SP2 ( orig ), IDE: Code::Blocks 10.05, wxWidgets version: 2.8.12, Compiler: GCC 4.
OS: Windows XP HE SP2 ( orig ), IDE: Code::Blocks 10.05, wxWidgets version: 2.8.12, Compiler: GCC 4.
Re: Осваиваю библиотеку. Сложности.
Уже довольно давно хотел немного разобраться в этой библиотеке... Ну, вот... Свершилось... Также позвольте показать, шо же я там такое чудю Можно называть "Выкидышем" Это заготовка. Стояла задача: разобраться... Далее нужно будет продумать логику, дописать API... Тяжело с ужении — легко в бою, однако... Кста, под Виндовс не компилится... Шот упирается на wxHTTP. На больную голову делал — потом посмотрю...
Source: http://www.my-services.km.ua/files/MSC/MSC_0.1.zip
*предполагаю, шо эта шмаказявка в конце — это символ перевода строки...
Всё!..
Source: http://www.my-services.km.ua/files/MSC/MSC_0.1.zip
*предполагаю, шо эта шмаказявка в конце — это символ перевода строки...
Всё!..
OS: Slackware 12.2, IDE: KDevelop, xwWidgets version: 2.8.10, Compiler: GCC 4.2.4;
OS: Windows XP HE SP2 ( orig ), IDE: Code::Blocks 10.05, wxWidgets version: 2.8.12, Compiler: GCC 4.
OS: Windows XP HE SP2 ( orig ), IDE: Code::Blocks 10.05, wxWidgets version: 2.8.12, Compiler: GCC 4.
Re: Осваиваю библиотеку. Сложности.
Также разобрался с проблемой компиляции под виндовс. Проблем была более чем адекватной — линковщику не были указаны все dll-файлы. Я их добавил и всё сразу собралось и запустилось...
List libs: libwxbase28ud_net.a, libwxbase28ud_xml.a
Теперь моя прога работает на двух осях, чему очень рад!..
Windows XP SP2:
List libs: libwxbase28ud_net.a, libwxbase28ud_xml.a
Теперь моя прога работает на двух осях, чему очень рад!..
Windows XP SP2:
OS: Slackware 12.2, IDE: KDevelop, xwWidgets version: 2.8.10, Compiler: GCC 4.2.4;
OS: Windows XP HE SP2 ( orig ), IDE: Code::Blocks 10.05, wxWidgets version: 2.8.12, Compiler: GCC 4.
OS: Windows XP HE SP2 ( orig ), IDE: Code::Blocks 10.05, wxWidgets version: 2.8.12, Compiler: GCC 4.
-
- Super wx Problem Solver
- Posts: 401
- Joined: Wed Sep 21, 2005 8:17 am
- Location: Rostov-on-Don, Southern Russia
Re: Осваиваю библиотеку. Сложности.
Не плохо для начала и уж совсем роскошно для новичка.baytuch wrote:Также разобрался с проблемой компиляции под виндовс. Проблем была более чем адекватной — линковщику не были указаны все dll-файлы. Я их добавил и всё сразу собралось и запустилось...
List libs: libwxbase28ud_net.a, libwxbase28ud_xml.a
Теперь моя прога работает на двух осях, чему очень рад!..
Windows XP SP2:
Win XP HE SP3, Vista
Xubuntu 12.04 LTS
wxWidgets-2.9.5
wxWidgets-3.0.0
Xubuntu 12.04 LTS
wxWidgets-2.9.5
wxWidgets-3.0.0
-
- Super wx Problem Solver
- Posts: 401
- Joined: Wed Sep 21, 2005 8:17 am
- Location: Rostov-on-Don, Southern Russia
Re: Осваиваю библиотеку. Сложности.
Хотя посмотрел код, какой уж там новичок... может быть новичок в wxWidgets, но не в программировании это точно
Win XP HE SP3, Vista
Xubuntu 12.04 LTS
wxWidgets-2.9.5
wxWidgets-3.0.0
Xubuntu 12.04 LTS
wxWidgets-2.9.5
wxWidgets-3.0.0
Re: Осваиваю библиотеку. Сложности.
Не ожидал... Спасибо...
Нашел в этой демке серьезный ляп, который приводит краху приложения... Вообще не знаю, как оно могло работать с таким багом?.. ( сорцы перезалил )
Нашел в этой демке серьезный ляп, который приводит краху приложения... Вообще не знаю, как оно могло работать с таким багом?.. ( сорцы перезалил )
OS: Slackware 12.2, IDE: KDevelop, xwWidgets version: 2.8.10, Compiler: GCC 4.2.4;
OS: Windows XP HE SP2 ( orig ), IDE: Code::Blocks 10.05, wxWidgets version: 2.8.12, Compiler: GCC 4.
OS: Windows XP HE SP2 ( orig ), IDE: Code::Blocks 10.05, wxWidgets version: 2.8.12, Compiler: GCC 4.
Re: Осваиваю библиотеку. Сложности.
baytush,
Dlya togo chtoby obschatsya s internetom prosche i luchshe ispolzovat biblioteku "cURL".
wxHTTP ochen primitiven.
cURL - biblioteka obschenija s set'ju (ljuboj). Besplatnaja i s otkrytym kodom. V obraschenii prosta.
Sorry, pishu s raboty, a nas zdes vse tolko po angelski...
Spasibio.
Dlya togo chtoby obschatsya s internetom prosche i luchshe ispolzovat biblioteku "cURL".
wxHTTP ochen primitiven.
cURL - biblioteka obschenija s set'ju (ljuboj). Besplatnaja i s otkrytym kodom. V obraschenii prosta.
Sorry, pishu s raboty, a nas zdes vse tolko po angelski...
Spasibio.