Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
mh-coder
24 / 23 / 3
Регистрация: 01.02.2014
Сообщений: 770
#1

Curl не работает в оконном приложении winapi - C++

31.07.2014, 22:36. Просмотров 556. Ответов 16
Метки нет (Все метки)

Вообщм проблема, в консольном приложении курл работает нормально, в оконном нет, функция curl_easy_perform() возвращает ошибку 23, хз вообще что предпринять,

Вот код, если коме не лень глянуть но нет под рукой библиотек курла то скажите, скинцу весь проект

строки 148 - 160, с курлом

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
#include <Windows.h>
#include <tchar.h>
#include "Header.h"
#include "curl.h"
#include "dirent.h"
#pragma comment(lib,"curllib.lib")
 
static HINSTANCE hinstance = NULL;
static LPCWSTR CLASS_NAME = L"MyFirstClass";
static LPCWSTR TITLE = L"Parser";
static HWND h_wnd = NULL;
static HWND h_button = NULL;
static HWND h_textarea_1 = NULL;
static HWND h_textarea_2 = NULL;
static HWND label = NULL;
static HWND label2 = NULL;
 
#define ID_BUTTON (WM_USER + 1)
#define ID_TEXTAREA_1 (WM_USER + 2)
#define ID_TEXTAREA_2 (WM_USER + 3)
 
static LRESULT CALLBACK WndProc ( HWND,UINT,WPARAM,LPARAM);
 
int WINAPI _tWinMain( HINSTANCE _hinstance,HINSTANCE _hprevInstance, LPTSTR _lpCommandLine, int nCmdShow){
 
    ::hinstance = _hinstance;
 
    WNDCLASSEX wc = {0};
 
    wc.cbSize = sizeof(WNDCLASSEX);
    wc.style = CS_HREDRAW | CS_VREDRAW; 
    wc.lpfnWndProc      = WndProc;                              
    wc.cbClsExtra       = 0;                                    
    wc.cbWndExtra       = 0;                                    
    wc.hInstance        = ::hinstance;                          
    wc.hIcon            = LoadIcon( NULL, IDI_APPLICATION );    
    wc.hCursor          = LoadCursor( NULL, IDC_ARROW );        
    wc.hbrBackground    = ( HBRUSH )( COLOR_WINDOW + 1 );       
    wc.lpszClassName    = CLASS_NAME;                           
    wc.hIconSm          = LoadIcon( NULL, IDI_APPLICATION );
 
    RegisterClassEx(&wc);
 
    ::h_wnd = CreateWindowEx(NULL,CLASS_NAME,
        TITLE,
        WS_OVERLAPPEDWINDOW,
        CW_USEDEFAULT, NULL,    
        600, 500,
        NULL,   
        NULL,
        ::hinstance,    
        NULL);
 
 
    ::h_button = CreateWindowEx(NULL,L"BUTTON",
        L"Перевести",
        WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
        0,105,  
        100, 80,
        ::h_wnd,    
        ( HMENU )ID_BUTTON,
        ::hinstance,    
        NULL);
 
 
    ::label = CreateWindowEx( NULL,                 // По умолчанию
        L"STATIC",                  // Класс окна
        L"URL:",    // Надпись
        WS_CHILD | WS_VISIBLE,      // Стиль
        5,5,    
        40, 20,         // Размер
        ::h_wnd,                            // Родительское окно
        ( HMENU )ID_BUTTON,     // ID
        ::hinstance,                    // Дескриптор приложения
        NULL );                     // Параметров нет
 
    ::label2 = CreateWindowEx( NULL,                    // По умолчанию
        L"STATIC",                  // Класс окна
        L"Result:", // Надпись
        WS_CHILD | WS_VISIBLE,      // Стиль
        400,5,  
        50, 20,         // Размер
        ::h_wnd,                            // Родительское окно
        ( HMENU )ID_BUTTON,     // ID
        ::hinstance,                    // Дескриптор приложения
        NULL );                     // Параметров нет
 
 
    ::h_textarea_1 = CreateWindowEx(NULL,L"EDIT",
        L"",
        WS_CHILD | WS_VISIBLE | WS_BORDER,
        45,5,   
        200, 20,
        ::h_wnd,    
        ( HMENU )ID_TEXTAREA_1,
        ::hinstance,    
        NULL);
 
    ::h_textarea_2 = CreateWindowEx(NULL,L"EDIT",
        L"",
        WS_CHILD | WS_VISIBLE | WS_BORDER| ES_MULTILINE | ES_AUTOVSCROLL,
        260,35, 
        300, 400,
        ::h_wnd,    
        ( HMENU )ID_TEXTAREA_2,
        ::hinstance,    
        NULL);
 
    ShowWindow(::h_wnd,nCmdShow);
    UpdateWindow( ::h_wnd );    
 
    MSG msg = { 0 };
 
    while ( GetMessage( &msg, NULL, 0, 0 ) )
    {
        TranslateMessage( &msg );
        DispatchMessage( &msg );
    }
 
 
    DestroyWindow( ::h_button );
    DestroyWindow( ::h_textarea_1 );
    DestroyWindow( ::h_textarea_2 );
    DestroyWindow( ::h_wnd );
 
 
    return (int) msg.wParam;
 
 
 
};
 
 
 
static LRESULT CALLBACK WndProc ( HWND h_wnd,UINT msg,WPARAM wParam,LPARAM lParam){
 
 
    if( msg == WM_COMMAND ) {
 
        if( wParam == ID_BUTTON )
        {
            int len = GetWindowTextLength(::h_textarea_1);
            wstring text;
            text.resize(len+1);
            SendMessage(::h_textarea_1,WM_GETTEXT,( WPARAM ) len+1,( LPARAM ) &text[0]);
 
 
            CURL *curl;
            CURLcode res;
            string result;
 
            curl = curl_easy_init();
            if(curl) {
                curl_easy_setopt(curl, CURLOPT_URL, "http://mh-proxy.ru");
                curl_easy_setopt(curl, CURLOPT_HEADER, 1);
                res = curl_easy_perform(curl);
                curl_easy_cleanup(curl);
            }
 
            result = res;
 
            SendMessage(::h_textarea_2,WM_SETTEXT,( WPARAM )NULL,( LPARAM ) result.c_str( ));
        }
    }else if( msg == WM_DESTROY ) {
        PostQuitMessage(0);
    }else{
        return DefWindowProc( h_wnd,msg,wParam,lParam );
    }
 
 
    return 0;
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.07.2014, 22:36     Curl не работает в оконном приложении winapi
Посмотрите здесь:

В консольном приложении код работает нормально, в оконном - нет - C++
суть в чем. используется один и тот же модуль ATD. Но в консольном приложении работает нормально все, все методы. А вот в окне формы...

Вывод консоли в оконном приложении - C++
Мне нужно затестировать как работает функция, т.е. выводить каждую операцию... Что - то неправильно клеит биты у меня...void...

Использовать WINAPI функцию StrToIntEx в консольном приложении - C++
Нужно в консольном приложении читать 16ричную строку в виде string и переводить её в число, руками делать это лень (да и к чему писать...

CURL *curl; - C++
CURL *curl; опишите подробно что здесь все это значит. Я на php только профи.

Библиотека cURL - C++
Здравствуйте, подскажите как подключить curl к visual studio? Ясно и точно пожалуйста, что бы было все понятно.

Curl, Useragent - C++
как в curl передавать &quot;настоящий&quot; useragent? на php так: $_SERVER а на с++? ... ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
31.07.2014, 23:16     Curl не работает в оконном приложении winapi #2
Цитата Сообщение от mh-coder Посмотреть сообщение
функция curl_easy_perform() возвращает ошибку 23
Когда возвращает? При запуске?

Добавлено через 15 минут
Вот так ошибку не возвращает:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
          CURL *curl;
          CURLcode res;
          string result;
          
          curl = curl_easy_init();
          if(curl) 
          {
            curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");
            curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
            res = curl_easy_perform(curl);
            
            if(res != CURLE_OK)
              fprintf(stderr, "curl_easy_perform() failed: %s\n",
                      curl_easy_strerror(res));
            curl_easy_cleanup(curl);
          }
mh-coder
24 / 23 / 3
Регистрация: 01.02.2014
Сообщений: 770
31.07.2014, 23:23  [ТС]     Curl не работает в оконном приложении winapi #3
Цитата Сообщение от alsav22 Посмотреть сообщение
Когда возвращает? При запуске?
не, ошибок никаких на экран не выводит, просто функция curl_easy_perform() возвращает ошибку 23(смотрю через дебаггер) и естественно записывает в result пустой результат
Avazart
7101 / 5278 / 267
Регистрация: 10.12.2010
Сообщений: 23,279
Записей в блоге: 17
01.08.2014, 00:18     Curl не работает в оконном приложении winapi #4
Описание этой ошибки ?
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
01.08.2014, 00:20     Curl не работает в оконном приложении winapi #5
Цитата Сообщение от mh-coder Посмотреть сообщение
просто функция curl_easy_perform() возвращает ошибку 23(смотрю через дебаггер)
...
Цитата Сообщение от alsav22 Посмотреть сообщение
Вот так ошибку не возвращает:
Avazart
7101 / 5278 / 267
Регистрация: 10.12.2010
Сообщений: 23,279
Записей в блоге: 17
01.08.2014, 00:24     Curl не работает в оконном приложении winapi #6
Ага а где коде проверка curl_easy_strerror() ? У ТС оконное приложение, вероятно он тупо впендюрил код куда попало.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
01.08.2014, 00:38     Curl не работает в оконном приложении winapi #7
Если, в коде ТС, заменить "http://mh-proxy.ru" на "http://example.com", то ошибка исчезает, а так (curl_easy_strerror(res)) выдаёт: "Failed writing received data to disk/application"
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
01.08.2014, 01:08     Curl не работает в оконном приложении winapi #8
Что-то выводит:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
//функция обратного вызова
static int writer(char *data, size_t size, size_t nmemb, string *buffer)
{
  //переменная - результат, по умолчанию нулевая
  int result = 0;
  //проверяем буфер
  if (buffer != NULL)
  {
    //добавляем к буферу строки из data, в количестве nmemb
    buffer->append(data, size * nmemb);
    //вычисляем объем принятых данных
    result = size * nmemb;
  }
  //вовзращаем результат
  return result;
}
 
 static LRESULT CALLBACK WndProc ( HWND h_wnd,UINT msg,WPARAM wParam,LPARAM lParam){
 
 
    if( msg == WM_COMMAND ) {
 
        if( wParam == ID_BUTTON )
        {
            int len = GetWindowTextLength(::h_textarea_1);
            wstring text;
            text.resize(len+1);
            SendMessage(::h_textarea_1,WM_GETTEXT,( WPARAM ) len+1,( LPARAM ) &text[0]);
 
            CURL *curl;
            CURLcode res;
            string result;
 
            curl = curl_easy_init();
            if(curl) 
            {
                curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");
                curl_easy_setopt(curl, CURLOPT_HEADER, 1);
                //указываем функцию обратного вызова для записи получаемых данных
                curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, writer);
                //указываем куда записывать принимаемые данные
                curl_easy_setopt(curl, CURLOPT_WRITEDATA, &result);
                
                res = curl_easy_perform(curl);
 
                if(res != CURLE_OK)
                {
                  ofstream fout("curl.txt");
                  fout << curl_easy_strerror(res);
                }
 
                curl_easy_cleanup(curl);
            }
 
            SendMessage(::h_textarea_2,WM_SETTEXT,( WPARAM )NULL,( LPARAM ) result.c_str( ));
        }
    }else if( msg == WM_DESTROY ) {
        PostQuitMessage(0);
    }else{
        return DefWindowProc( h_wnd,msg,wParam,lParam );
    }
 
    return 0;
}
Миниатюры
Curl не работает в оконном приложении winapi  
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
01.08.2014, 02:39     Curl не работает в оконном приложении winapi #9
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Если юникод убрать, то совсем хорошо:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
#include <Windows.h>
#include <tchar.h>
//#include "Header.h"
#include <curl.h>
//#include "dirent.h"
#include <string>
#include <fstream>
using namespace std;
#pragma comment(lib,"curllib.lib")
 
static HINSTANCE hinstance = NULL;
static LPCSTR CLASS_NAME = "MyFirstClass";
static LPCSTR TITLE = "Parser";
static HWND h_wnd = NULL;
static HWND h_button = NULL;
static HWND h_textarea_1 = NULL;
static HWND h_textarea_2 = NULL;
static HWND label = NULL;
static HWND label2 = NULL;
 
#define ID_BUTTON (WM_USER + 1)
#define ID_TEXTAREA_1 (WM_USER + 2)
#define ID_TEXTAREA_2 (WM_USER + 3)
 
static LRESULT CALLBACK WndProc ( HWND,UINT,WPARAM,LPARAM);
 
int WINAPI _tWinMain( HINSTANCE _hinstance,HINSTANCE _hprevInstance, LPTSTR _lpCommandLine, int nCmdShow)
{
 
    ::hinstance = _hinstance;
 
    WNDCLASSEX wc = {0};
 
    wc.cbSize = sizeof(WNDCLASSEX);
    wc.style = CS_HREDRAW | CS_VREDRAW; 
    wc.lpfnWndProc      = WndProc;                              
    wc.cbClsExtra       = 0;                                    
    wc.cbWndExtra       = 0;                                    
    wc.hInstance        = ::hinstance;                          
    wc.hIcon            = LoadIcon( NULL, IDI_APPLICATION );    
    wc.hCursor          = LoadCursor( NULL, IDC_ARROW );        
    wc.hbrBackground    = ( HBRUSH )( COLOR_WINDOW + 1 );       
    wc.lpszClassName    = CLASS_NAME;                           
    wc.hIconSm          = LoadIcon( NULL, IDI_APPLICATION );
 
    RegisterClassEx(&wc);
 
    ::h_wnd = CreateWindowEx(NULL,CLASS_NAME,
        TITLE,
        WS_OVERLAPPEDWINDOW,
        CW_USEDEFAULT, NULL,    
        600, 500,
        NULL,   
        NULL,
        ::hinstance,    
        NULL);
 
 
    ::h_button = CreateWindowEx(NULL,"BUTTON",
        "Перевести",
        WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
        0,105,  
        100, 80,
        ::h_wnd,    
        ( HMENU )ID_BUTTON,
        ::hinstance,    
        NULL);
 
 
    ::label = CreateWindowEx( NULL,                 // По умолчанию
        "STATIC",                  // Класс окна
        "URL:",    // Надпись
        WS_CHILD | WS_VISIBLE,      // Стиль
        5,5,    
        40, 20,         // Размер
        ::h_wnd,                            // Родительское окно
        ( HMENU )ID_BUTTON,     // ID
        ::hinstance,                    // Дескриптор приложения
        NULL );                     // Параметров нет
 
    ::label2 = CreateWindowEx( NULL,                    // По умолчанию
        "STATIC",                  // Класс окна
        "Result:", // Надпись
        WS_CHILD | WS_VISIBLE,      // Стиль
        400,5,  
        50, 20,         // Размер
        ::h_wnd,                            // Родительское окно
        ( HMENU )ID_BUTTON,     // ID
        ::hinstance,                    // Дескриптор приложения
        NULL );                     // Параметров нет
 
 
    ::h_textarea_1 = CreateWindowEx(NULL,"EDIT",
        "",
        WS_CHILD | WS_VISIBLE | WS_BORDER,
        45,5,   
        200, 20,
        ::h_wnd,    
        ( HMENU )ID_TEXTAREA_1,
        ::hinstance,    
        NULL);
 
    ::h_textarea_2 = CreateWindowEx(NULL,"EDIT",
        "",
        WS_CHILD | WS_VISIBLE | WS_BORDER| ES_MULTILINE | ES_AUTOVSCROLL,
        260,35, 
        300, 400,
        ::h_wnd,    
        ( HMENU )ID_TEXTAREA_2,
        ::hinstance,    
        NULL);
 
    ShowWindow(::h_wnd,nCmdShow);
    UpdateWindow( ::h_wnd );    
 
    MSG msg = { 0 };
 
    while ( GetMessage( &msg, NULL, 0, 0 ) )
    {
        TranslateMessage( &msg );
        DispatchMessage( &msg );
    }
 
 
    DestroyWindow( ::h_button );
    DestroyWindow( ::h_textarea_1 );
    DestroyWindow( ::h_textarea_2 );
    DestroyWindow( ::h_wnd );
 
 
    return (int) msg.wParam;
 
 
 
};
 
//функция обратного вызова
static int writer(char *data, size_t size, size_t nmemb, string *buffer)
{
  //переменная - результат, по умолчанию нулевая
  int result = 0;
  //проверяем буфер
  if (buffer != NULL)
  {
    //добавляем к буферу строки из data, в количестве nmemb
    buffer->append(data, size * nmemb);
    //вычисляем объем принятых данных
    result = size * nmemb;
  }
  //вовзращаем результат
  return result;
}
 
 static LRESULT CALLBACK WndProc ( HWND h_wnd,UINT msg,WPARAM wParam,LPARAM lParam){
 
 
    if( msg == WM_COMMAND ) 
    {
 
        if( wParam == ID_BUTTON )
        {
            int len = GetWindowTextLength(::h_textarea_1);
            string text;
            text.resize(len+1);
            SendMessage(::h_textarea_1, WM_GETTEXT, ( WPARAM ) len+1, ( LPARAM ) &text[0]);
 
            CURL *curl;
            CURLcode res;
            string result;
 
            curl = curl_easy_init();
            if(curl) 
            {
                curl_easy_setopt(curl, CURLOPT_URL, text.c_str());
                curl_easy_setopt(curl, CURLOPT_HEADER, 1);
                //указываем функцию обратного вызова для записи получаемых данных
                curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, writer);
                //указываем куда записывать принимаемые данные
                curl_easy_setopt(curl, CURLOPT_WRITEDATA, &result);
                
                res = curl_easy_perform(curl);
 
                if(res != CURLE_OK)
                {
                  ofstream fout("curl.txt");
                  fout << curl_easy_strerror(res);
                }
 
                curl_easy_cleanup(curl);
            }
 
            SendMessage(::h_textarea_2,WM_SETTEXT,( WPARAM )NULL,( LPARAM ) result.c_str( ));
        }
    }
    else if( msg == WM_DESTROY ) 
    {
        PostQuitMessage(0);
    }else
    {
        return DefWindowProc( h_wnd,msg,wParam,lParam );
    }
 
    return 0;
}
Миниатюры
Curl не работает в оконном приложении winapi   Curl не работает в оконном приложении winapi  
mh-coder
24 / 23 / 3
Регистрация: 01.02.2014
Сообщений: 770
01.08.2014, 11:50  [ТС]     Curl не работает в оконном приложении winapi #10
такой вопросец,
когда так curl_easy_setopt(curl, CURLOPT_URL, "http://www.cyberforum.ru"); то норм
а когда передаю в патаметре строку curl_easy_setopt(curl, CURLOPT_URL, text); то нифига неработает, почему? что функция должна принимать в параметрах?
Avazart
7101 / 5278 / 267
Регистрация: 10.12.2010
Сообщений: 23,279
Записей в блоге: 17
01.08.2014, 12:19     Curl не работает в оконном приложении winapi #11
Блог: Библиотека libcurl
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
01.08.2014, 19:55     Curl не работает в оконном приложении winapi #12
Цитата Сообщение от mh-coder Посмотреть сообщение
такой вопросец,
когда так curl_easy_setopt(curl, CURLOPT_URL, "http://www.cyberforum.ru"); то норм
а когда передаю в патаметре строку curl_easy_setopt(curl, CURLOPT_URL, text); то нифига неработает, почему? что функция должна принимать в параметрах?
Потому, что последняя буква ('u') в окно ввода не помещается.
Миниатюры
Curl не работает в оконном приложении winapi  
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
01.08.2014, 20:03     Curl не работает в оконном приложении winapi #13
Цитата Сообщение от alsav22 Посмотреть сообщение
что функция должна принимать в параметрах?
Смотрим выложенный код. Ссылку на форум, с описанием работы с curl, отправил в л/с.

Добавлено через 5 минут
Цитата Сообщение от alsav22 Посмотреть сообщение
Потому, что последняя буква ('u') в окно ввода не помещается.
Это если правильный параметр задан (text.c_str()).
mh-coder
24 / 23 / 3
Регистрация: 01.02.2014
Сообщений: 770
06.08.2014, 19:53  [ТС]     Curl не работает в оконном приложении winapi #14
а тут еще вопрос возник, curl возвращат результат только в string, и получаются что если на сайте есть русские буквы(или китайские) то вместо них будут кракозябры, как вернуть результат в wstring или как быть в данном случае?
Avazart
7101 / 5278 / 267
Регистрация: 10.12.2010
Сообщений: 23,279
Записей в блоге: 17
06.08.2014, 20:30     Curl не работает в оконном приложении winapi #15
Цитата Сообщение от mh-coder Посмотреть сообщение
а тут еще вопрос возник, curl возвращат результат только в string, и получаются что если на сайте есть русские буквы(или китайские) то вместо них будут кракозябры, как вернуть результат в wstring или как быть в данном случае?
сurl возвращает результат в char т.е в байтах, так что утверждение полностью не верное.
Что бы не было кракозаябл нужно узнать в какой кодировки символы, и делать соответствующую перекодировку, например с помощью iconv (только там описание для С++Builder)
mh-coder
24 / 23 / 3
Регистрация: 01.02.2014
Сообщений: 770
06.08.2014, 20:34  [ТС]     Curl не работает в оконном приложении winapi #16
Цитата Сообщение от Avazart Посмотреть сообщение
сurl возвращает результат в char т.е в байтах, так что утверждение полностью не верное.
тоесть в char можно хранить всё что угодно? зачем тогда придумали wchar_t ?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.08.2014, 20:37     Curl не работает в оконном приложении winapi
Еще ссылки по теме:

Работа с CURL - C++
Люди, подскажите, как можно прикрутить библиотеку curl к IDЕ Dеv Cплюс плюс . Очень нужно. И желательно все детально расписать :-), и где...

CURL и шифрование трафика - C++
Всем привет. Я работаю с недоступным мне сервером с помощью curl, c++, windows. Как обычно подготавливаю запросы и отправляю,...

Curl опция переменной - C++
Собственно передача опции курлу выглядит незамысловато: curl_easy_setopt(CURL *handle, CURLoption option, parameter); Необходимо...

CURL + MinGW + CodeBlocks - C++
Помогите пожалуйста установить Curl... Измучился уже. Весь ГУГЛ перерыл. Пытался сделать по этой схеме: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Avazart
7101 / 5278 / 267
Регистрация: 10.12.2010
Сообщений: 23,279
Записей в блоге: 17
06.08.2014, 20:37     Curl не работает в оконном приложении winapi #17
Цитата Сообщение от mh-coder Посмотреть сообщение
тоесть в char можно хранить всё что угодно? зачем тогда придумали wchar_t ?
Не "то есть" ...
Матчасть учить надо...
Одно дело "байты" а другое дело то как их интерпретировать.
Yandex
Объявления
06.08.2014, 20:37     Curl не работает в оконном приложении winapi
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru