Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Технология загрузки данных из интернета в MFC. С++


Автор: kresh 27.2.2008, 16:55
Всем привет!
 дали на курсач по MFC.+ С++ -написать программу, которая будет автоматически  брать курсы валют с сайтов Центрального Банка Россииhttp://www.cbr.ru ,  и Национального банка РБ  http://www.nbrb.by/ и отображать в реальном времени на полупрозрачной форме . Задача как бы понятна,но вот по поводу того с чего начать реализацию выборки данных с сайтов и как это сделать не пойму,может подскажите что можно на эту тему почитать или чем руководствоваться при написании такой проги на MFC.+ С++ smile smile 

Заранее благодарю!

Автор: jonie 28.2.2008, 02:23
почитать про интерфейсы что предоставляются упомянутыми системами.
http://www.cbr.ru/scripts/Root.asp?Prtid=DWS
например про курсы валют.

1) берешь WSDL
http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx?WSDL
например кладешь ее в DailyInfo.wsdl
2) качаешь gSOAP 
3) делаешь wsdl2h -s DailyInfo.wsdl
4) делаешь soapcpp2 -i -C -d soap DailyInfo.h   (предварительно создав soap папку, конечно же)
5) добавляешь все в консольный проект (обычный win32)
6) добавляешь в проект stdsoap.cpp и stdsoap.h
7) Дописываешь строчку 
#include "soap/soapDailyInfoSoapProxy.h"
#include "soap/DailyInfoSoap.nsmap"  

куда-нибуль (например в main.cpp твоей програмки)

8) пишешь такое:
Код

    DailyInfoSoapProxy money;
    money.namespaces = namespaces;
    money.soap_endpoint = "http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx";
    _ns1__GetLatestDateTimeResponse date2;
    money.GetLatestDateTime(0, &date2);
    _ns1__GetCursOnDate curs1;
    curs1.On_USCOREdate= date2.GetLatestDateTimeResult;
    _ns1__GetCursOnDateResponse curs2;
    money.GetCursOnDate(&curs1, &curs2);
    printf("%s", curs2.GetCursOnDateResult->__any);

ответ, конечно, немного может показаться странным - это кодировка... вот с ней подумаешь сам..там UTF8, а вот как заставить либу понимать ее почитай в документации (там это было).

аналогично для других.
прозрачность - посмотри в msdn.

написал за 5 минут, но вполне работает (косяк с кодировкой правда небольшой)

Добавлено через 1 минуту и 31 секунду
конечно можно юзать и не gSOAP... а например подумать насчет COM-а ...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)