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

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

Войти
Регистрация
Восстановить пароль
 
Zubossi
1 / 1 / 0
Регистрация: 24.02.2011
Сообщений: 62
#1

Непонятности со строками - C++

24.02.2011, 10:11. Просмотров 561. Ответов 9
Метки нет (Все метки)

Возникла проблема не могу понять с какой стороны ее решить.

Работающий код:
C++
1
2
3
4
...
url = "http://www.site.ru/this.html";
file = InternetOpenUrl(session, url, 0, 0, 0, 0);
...
Не работающий код:
C++
1
2
3
...
file = InternetOpenUrl(session, Edit2->Text.t_str(), 0, 0, 0, 0);
...
По любому программа компилируется, но при выполнении второго варианта С++ Builder 2010 выдает "Project Project2.exe raised excaption class EAccessViolation with message 'Access Violation'"
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4819 / 3239 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
24.02.2011, 11:00     Непонятности со строками #2
C++
1
Edit2->Text.с_str()
?
Zubossi
1 / 1 / 0
Регистрация: 24.02.2011
Сообщений: 62
24.02.2011, 11:10  [ТС]     Непонятности со строками #3
Так даже компилироваться не хочет.

[BCC32 Error] Unit2.cpp(45): E2034 Cannot convert 'wchar_t *' to 'const char *'
Full parser context
Unit2.cpp(22): parsing: void _fastcall TForm2::Button1Click(TObject *)
accept
4819 / 3239 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
24.02.2011, 11:22     Непонятности со строками #4
C++
1
url = L"http://www.site.ru/this.html";
попробуй с прежним t_str()
CyberHunter
12 / 12 / 1
Регистрация: 03.08.2010
Сообщений: 61
24.02.2011, 11:25     Непонятности со строками #5
Edit2 - это у Вас класс, или едитбокс?
Zubossi
1 / 1 / 0
Регистрация: 24.02.2011
Сообщений: 62
24.02.2011, 11:37  [ТС]     Непонятности со строками #6
Цитата Сообщение от accept Посмотреть сообщение
C++
1
url = L"http://www.site.ru/this.html";
попробуй с прежним t_str()
это я что-то не понял.

Цитата Сообщение от CyberHunter Посмотреть сообщение
Edit2 - это у Вас класс, или едитбокс?
едитбокс
CyberHunter
12 / 12 / 1
Регистрация: 03.08.2010
Сообщений: 61
24.02.2011, 11:41     Непонятности со строками #7
Как-то видел, что у людей возникают проблемы с кодировкой, похоже там юникод. Попробуйте функцию AnsiToOem(), если мне не изменяет память...
Zubossi
1 / 1 / 0
Регистрация: 24.02.2011
Сообщений: 62
24.02.2011, 13:19  [ТС]     Непонятности со строками #8
Цитата Сообщение от CyberHunter Посмотреть сообщение
Как-то видел, что у людей возникают проблемы с кодировкой, похоже там юникод. Попробуйте функцию AnsiToOem(), если мне не изменяет память...
Выходит ошибка:
[BCC32 Error] Unit2.cpp(42): E2268 Call to undefined function 'AnsiToOEM'
Full parser context
Unit2.cpp(21): parsing: void _fastcall TForm2::Button1Click(TObject *)

я так полагаю из-за отсутствия нужного хедера?
У меня подключено:
#include <vcl.h>
#include <fstream.h>
#include <windows.h>
#pragma link "wininet.lib"

в каком хедере распологается эта функция, если в этом проблема?

Добавлено через 40 минут
Всем спасибо, заработали в таком составе:

C++
1
2
3
4
5
...
char *url;
url = new char[127];
CharToOem(Edit2->Text.t_str(), url);
...
Над этими строкаи в с++ явно что-то перемудрили, в делфи было намного проще.
CyberHunter
12 / 12 / 1
Регистрация: 03.08.2010
Сообщений: 61
24.02.2011, 19:52     Непонятности со строками #9
Цитата Сообщение от Zubossi Посмотреть сообщение
CharToOem
- в точку!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.02.2011, 05:16     Непонятности со строками
Еще ссылки по теме:

Работа с строками C++
Работа со строками C++
C++ Работа со строками
C++ Работа со строками

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

Или воспользуйтесь поиском по форуму:
accept
4819 / 3239 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
25.02.2011, 05:16     Непонятности со строками #10
Цитата Сообщение от Zubossi
это я что-то не понял.
Код
Cannot convert 'wchar_t *'
wchar_t * подразумевает широкосимвольную строку, которая задаётся с L
широкосимвольная строка - строка состоящая из широких символов, а широкий символ - это многобайтовый символ
C
1
url = "http://www.site.ru/this.html";
это строка однобайтовых символов, так как в ней нет L
Yandex
Объявления
25.02.2011, 05:16     Непонятности со строками
Ответ Создать тему
Опции темы

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