Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ошибки кода на cpp builder 6, ошибки кода на cpp builder 6 
V
    Опции темы
kshyms
  Дата 12.2.2012, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 303
Регистрация: 30.8.2006
Где: Душанбе

Репутация: нет
Всего: 0



Код

#include <iostream.h>
#include <algorithm>



int main()
{
string  URL_DOWNLOAD = "http://www.сайт.com" ;
string FILE_NAME = "m.txt";
TFileStream *FILE_STREAM = new TFileStream(FILE_NAME, fmCreate | fmOpenWrite);
IdHTTP1->Get(URL_DOWNLOAD, FILE_STREAM);
   delete FILE_STREAM;
  return 0;
}


[C++ Error] File1.cpp(11): E2451 Undefined symbol 'TFileStream' Неопределенный символ
[C++ Error] File1.cpp(11): E2451 Undefined symbol 'FILE_STREAM' Неопределенный символ
[C++ Error] File1.cpp(11): E2303 Type name expected Введите ожидаемое имя
[C++ Error] File1.cpp(11): E2379 Statement missing ;Без вести пропавшее заявление
[C++ Error] File1.cpp(12): E2451 Undefined symbol 'IdHTTP1' Неопределенный символ
[C++ Error] File1.cpp(13): E2158 Operand of 'delete' must be non-const pointer
Почему не работает эта программа?

Это сообщение отредактировал(а) kshyms - 12.2.2012, 17:48
PM MAIL WWW Skype   Вверх
Dem_max
Дата 12.2.2012, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

Репутация: 14
Всего: 39



потому что это должно выглядеть примерно так
Код

#include <vcl.h>
#include <iostream.h>
#include <algorithm>



int main()
{
string  URL_DOWNLOAD = "http://www.сайт.com" ;
string FILE_NAME = "m.txt";
TFileStream *FILE_STREAM = new TFileStream(FILE_NAME.c_str(), fmCreate | fmOpenWrite);
IdHTTP1->Get(URL_DOWNLOAD, FILE_STREAM);
    delete FILE_STREAM;
  return 0;
}


Это сообщение отредактировал(а) Dem_max - 12.2.2012, 17:59


--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
Artemon
Дата 12.2.2012, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а ты мне нравишься
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 24.2.2004
Где: Челябинск

Репутация: 7
Всего: 20



#include <fstream>

Код

#include <vcl.h>


должно помочь



Это сообщение отредактировал(а) Artemon - 12.2.2012, 18:04


--------------------
Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru
PM MAIL   Вверх
Данкинг
Дата 12.2.2012, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



Цитата(kshyms @  12.2.2012,  18:32 Найти цитируемый пост)
Без вести пропавшее заявление

Кошмар какой. smile 
Цитата(kshyms @  12.2.2012,  18:32 Найти цитируемый пост)
Почему не работает эта программа?

Я так понимаю, ты этот кусок откуда-то выдрал и пытаешься вставить в Билдер.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Artemon
Дата 12.2.2012, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а ты мне нравишься
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 24.2.2004
Где: Челябинск

Репутация: 7
Всего: 20



К  томуже в Bulder строки помоему типа AnsiString


--------------------
Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru
PM MAIL   Вверх
Dem_max
Дата 12.2.2012, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

Репутация: 14
Всего: 39



Цитата

К  томуже в Bulder строки помоему типа AnsiString

Наплевать какие строки


--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
kshyms
Дата 12.2.2012, 21:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 303
Регистрация: 30.8.2006
Где: Душанбе

Репутация: нет
Всего: 0




Код

IdHTTP1->Get(URL_DOWNLOAD, FILE_STREAM);

Выдает [C++ Error] File1.cpp(12): E2451 Undefined symbol 'IdHTTP1'Неопределенный символ
PM MAIL WWW Skype   Вверх
Artemon
Дата 12.2.2012, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а ты мне нравишься
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 24.2.2004
Где: Челябинск

Репутация: 7
Всего: 20



Насколько я понимаю это компонент, который должен лежать на форме или должен быть создан в коде пред использованием.

Скорее всего у вас не выполняется ни первое ни второе условие.


--------------------
Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru
PM MAIL   Вверх
kshyms
Дата 12.2.2012, 21:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 303
Регистрация: 30.8.2006
Где: Душанбе

Репутация: нет
Всего: 0



Данкинг
1 этап копирование кода (частичное или полное в зависимости от задачи )
2 этап копирование с модификацией 
3 этап собственно программирование (компоновка, отладка и оптимизация кода в зависимости от задачи )
А кто то еще знает как еще?

Добавлено @ 21:12
Artemon, а без формы ни как нельзя?

Это сообщение отредактировал(а) kshyms - 13.2.2012, 07:29
PM MAIL WWW Skype   Вверх
Artemon
Дата 12.2.2012, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а ты мне нравишься
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 24.2.2004
Где: Челябинск

Репутация: 7
Всего: 20



Можно и без формы, но для этого придется вам создать прямо в коде нужный компонент IdHTTP1.

Какой у него тип я не помню (можете посмотреть на закладке Indy), но вот псевдокод:

Код

ТИП* IdHTTP1 = new ТИП();





--------------------
Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru
PM MAIL   Вверх
kshyms
Дата 12.2.2012, 21:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 303
Регистрация: 30.8.2006
Где: Душанбе

Репутация: нет
Всего: 0



(вкладка Indy Clients) и любой обработчик событий, например Button 

и еще нашел  Введение в компоненты Indy может это подойдет TIdHTTP и TIdHTTPServer

Type* IdHTTP1 = new Type();

Это сообщение отредактировал(а) kshyms - 13.2.2012, 07:32
PM MAIL WWW Skype   Вверх
Artemon
Дата 13.2.2012, 07:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а ты мне нравишься
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 24.2.2004
Где: Челябинск

Репутация: 7
Всего: 20



TIdHTTP* IdHTTP1 = new TIdHTTP();


--------------------
Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru
PM MAIL   Вверх
kshyms
Дата 13.2.2012, 07:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 303
Регистрация: 30.8.2006
Где: Душанбе

Репутация: нет
Всего: 0



Artemon,  ошибок нет но и не записывает в файл строку
Код

#include <vcl.h>
#include <iostream.h>
#include <algorithm>



int main()
{
string  URL_DOWNLOAD = "http://www.сайт.ru" ;
string FILE_NAME = "1.txt";

   TIdHTTP* IdHTTP1 = new TIdHTTP();
TFileStream *FILE_STREAM = new TFileStream(FILE_NAME.c_str(), fmCreate | fmOpenWrite);
new TIdHTTP()->Get(URL_DOWNLOAD, FILE_STREAM);
    delete FILE_STREAM;
  return 0;
}


Это сообщение отредактировал(а) kshyms - 13.2.2012, 07:44
PM MAIL WWW Skype   Вверх
Artemon
Дата 13.2.2012, 08:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а ты мне нравишься
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 24.2.2004
Где: Челябинск

Репутация: 7
Всего: 20



На первый взгляд все должно работать, попробуйте явно указать путь к файлу:

string FILE_NAME = "C:\\1.txt";

и перед удаленимем файлового потока поставьте строку:

Sleep(1500); //give TFileStream time to write remaining buffer bytes

Это сообщение отредактировал(а) Artemon - 13.2.2012, 08:18


--------------------
Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru
PM MAIL   Вверх
kshyms
Дата 10.9.2012, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 303
Регистрация: 30.8.2006
Где: Душанбе

Репутация: нет
Всего: 0



Код

//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop

#include <tchar.h>
//---------------------------------------------------------------------------
#include <algorithm>
#pragma argsused
int _tmain(int argc, _TCHAR* argv[])
{

AnsiString  URL_DOWNLOAD = "http://www.мойсайт.com" ;
AnsiString FILE_NAME = "E:\\1.txt";
TFileStream *FILE_STREAM = new TFileStream(FILE_NAME.c_str(), fmCreate | fmOpenWrite);
IdHTTP1->Get(URL_DOWNLOAD, FILE_STREAM);
    Sleep(1500); //give TFileStream time to write remaining buffer bytes
    delete FILE_STREAM;
  return 0;
}



//---------------------------------------------------------------------------


Итак пока не выходит [BCC32 Error] File3.cpp(22): E2451 Undefined symbol 'IdHTTP1' т.е. неопределённый символ

Это сообщение отредактировал(а) kshyms - 10.9.2012, 13:52
PM MAIL WWW Skype   Вверх
xvr
Дата 11.9.2012, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 48
Всего: 223



Цитата(kshyms @  10.9.2012,  13:33 Найти цитируемый пост)
Итак пока не выходит [BCC32 Error] File3.cpp(22): E2451 Undefined symbol 'IdHTTP1' т.е. неопределённый символ

У меня одного дежавю? 

Цитата(Artemon @  12.2.2012,  21:19 Найти цитируемый пост)
Можно и без формы, но для этого придется вам создать прямо в коде нужный компонент IdHTTP1.


PM MAIL   Вверх
kshyms
Дата 11.9.2012, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 303
Регистрация: 30.8.2006
Где: Душанбе

Репутация: нет
Всего: 0



 Indy Clients      Содержит компоненты клиентских приложений Internet Direct (Indy), дающих доступ             к                             различным протоколам Internet из приложений Delphi, C++ Builder и Kylix
   Indy Servers      Содержит компоненты серверных приложений Internet Direct
  Indy Mask      Различные вспомогательные компоненты приложений Internet Direct
Имеется ввиду библиотеки и дописать код используя эти компоненты, который из них может этот 
 Indy HTTP Client а может это скорее всего TIdTelnet

Это сообщение отредактировал(а) kshyms - 11.9.2012, 19:05
PM MAIL WWW Skype   Вверх
kshyms
Дата 12.9.2012, 21:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 303
Регистрация: 30.8.2006
Где: Душанбе

Репутация: нет
Всего: 0



Код


    //---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
 #pragma hdrstop
#include <tchar.h>
//---------------------------------------------------------------------------
#include <algorithm>
#pragma argsused
int _tmain(int argc, _TCHAR* argv[])
{

AnsiString  URL_DOWNLOAD = "http://сайт.ru" ;
AnsiString FILE_NAME = "E:\\1.txt";



 IdHTTP1->Host = "smtp.сайт.ru";
 IdHTTP1->Port = 2525;
 IdHTTP1->Connect();
 TFileStream *FILE_STREAM = new TFileStream(FILE_NAME.c_str(), fmCreate | fmOpenWrite);
Id IdHTTP1->Get(URL_DOWNLOAD, FILE_STREAM);
    Sleep(1500); //give TFileStream time to write remaining buffer bytes
    delete FILE_STREAM;


  return 0;
}



Код


    //---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
 #pragma hdrstop
#include <tchar.h>
//---------------------------------------------------------------------------
#include <algorithm>
#pragma argsused
int _tmain(int argc, _TCHAR* argv[])
{

AnsiString  URL_DOWNLOAD = "http://сайт.ru" ;
AnsiString FILE_NAME = "E:\\1.txt";



 IdTelnet1->Host = "smtp.сайт.ru";
 IdTelnet1->Port = 2525;
 IdTelnet1->Connect();
 TFileStream *FILE_STREAM = new TFileStream(FILE_NAME.c_str(), fmCreate | fmOpenWrite);
Id IdTelnet1->Get(URL_DOWNLOAD, FILE_STREAM);
    Sleep(1500); //give TFileStream time to write remaining buffer bytes
    delete FILE_STREAM;


  return 0;
}



Варианты 1 и 2, но какого-то компонента не хватает.

Это сообщение отредактировал(а) kshyms - 12.9.2012, 21:09
PM MAIL WWW Skype   Вверх
xvr
Дата 12.9.2012, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 48
Всего: 223



Вам Artemon уже писал, как надо сделать *причем дважды), и вы даже сделали. Но видимо уже забыли, т.к. это было давно  smile 

Вот отсюда и ниже

PM MAIL   Вверх
kshyms
Дата 13.9.2012, 18:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 303
Регистрация: 30.8.2006
Где: Душанбе

Репутация: нет
Всего: 0



INTERNET_DEFAULT_HTTP_PORT    Use the default port for HTTP servers (port 80). А может это и есть компонент winInet.

xvr, На любую постановку задачи есть множество решений
Я вычитал что на builder есть поддержка WinInet API

Это сообщение отредактировал(а) kshyms - 13.9.2012, 18:51
PM MAIL WWW Skype   Вверх
Dem_max
Дата 14.9.2012, 04:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

Репутация: 14
Всего: 39





--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
xvr
Дата 14.9.2012, 09:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 48
Всего: 223



Цитата(kshyms @  13.9.2012,  18:44 Найти цитируемый пост)
xvr, На любую постановку задачи есть множество решений

Есть конечно. Вот только 'постановки задачи' мы пока не видели - были разные попытки скомпилировать куски кода на Builder'е с применением разных компонентов Indy. Я так понял, что это и была исходная задача  smile 

Цитата

Я вычитал что на builder есть поддержка WinInet API
Есть, как и в любом С/С++ компиляторе на Windows.

Если вам просто надо скачать файл из Internet'а, то это можно сделать гораздо проще -
Код

#include <windows.h>
#include <urlmon.h>
#include <stdio.h>

int main(int argc, char** argv)
{
 if (argc<2) {puts("Usage: urlmon <URL>"); return 1;}
 
 HRESULT hr=URLDownloadToFile(NULL,argv[1],"outf.html",0,NULL);
 if (hr<0) printf("Error: %08X\n",hr);
 return 0;

}
Это под VS, но и Builder'е должно собраться (как консольный проект)

PM MAIL   Вверх
kshyms
Дата 16.9.2012, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 303
Регистрация: 30.8.2006
Где: Душанбе

Репутация: нет
Всего: 0



//---------------------------------------------------------------------------

Код

#include <vcl.h>
#pragma hdrstop


#include <tchar.h>
//---------------------------------------------------------------------------
    #include <windows.h>
#include <urlmon.h>
#include <stdio.h>
#pragma argsused
int _tmain(int argc, _TCHAR* argv[])
{

 string URL = ("http://forum.vingrad.ru/forum/topic-346977/kw-ошибки-кода-на-cpp-builder.html#st_15_view_0");
 if (argc<2) {puts("Usage: urlmon <URL>"); return 1;}

 HRESULT hr=URLDownloadToFile(NULL,argv[1],"outf.html",0,NULL);
 if (hr<0) printf("Error: %08X\n",hr);



    return 0;
}
//---------------------------------------------------------------------------


[BCC32 Error] File9.cpp(15): E2451 Undefined symbol 'string' Неопределенный символ 
[BCC32 Error] File9.cpp(15): E2379 Statement missing ;пропавшие заявление
Что не так может библиотеки и переменную не правильно прописал?

Добавлено через 6 минут и 3 секунды
Dem_max, спасибо за эту ссылку http://www.rsdn.ru/article/inet/wininet.xml полезная

Это сообщение отредактировал(а) kshyms - 16.9.2012, 17:09
PM MAIL WWW Skype   Вверх
xvr
Дата 16.9.2012, 19:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 48
Всего: 223



Цитата(kshyms @  16.9.2012,  17:06 Найти цитируемый пост)
Что не так 

Вот это не так -
Код

string URL = ("http://forum.vingrad.ru/forum/topic-346977/kw-ошибки-кода-на-cpp-builder.html#st_15_view_0");
уберите эту строку вообще

PM MAIL   Вверх
kshyms
Дата 16.9.2012, 19:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 303
Регистрация: 30.8.2006
Где: Душанбе

Репутация: нет
Всего: 0



Код


#include <tchar.h>
//---------------------------------------------------------------------------
    #include <windows.h>
#include <urlmon.h>
#include <stdio.h>
#pragma argsused
int _tmain(int argc, _TCHAR* argv[])
{


 if (argc<2) {puts("Usage: urlmon <URL>"); return 1;}

 HRESULT hr=URLDownloadToFile(NULL,argv[1],"outf.html",0,NULL);
 if (hr<0) printf("Error: %08X\n",hr);



    return 0;
}



[ILINK32 Error] Error: Unresolved external 'URLDownloadToFileA' referenced from D:\BACKUP\我的文档\RAD STUDIO\PROJECTS\DEBUG\FILE9.OBJ





Это сообщение отредактировал(а) kshyms - 16.9.2012, 21:10
PM MAIL WWW Skype   Вверх
xvr
Дата 17.9.2012, 09:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 48
Всего: 223



Цитата(kshyms @  16.9.2012,  19:45 Найти цитируемый пост)
[ILINK32 Error] Error: Unresolved external 'URLDownloadToFileA' referenced from D:\BACKUP\我的文档\RAD STUDIO\PROJECTS\DEBUG\FILE9.OBJ

Добавьте библиотеку urlmon.lib в проект (она системная и должна уже быть на машине)

PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.1275 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.