Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » FAQ по Borland C++ Builder

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

Открыть новую тему     Написать ответ в эту тему

royt

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
заключать все длинные имена файлов в кавычки.
 
а именно:
Код:
“C:\Documents and Settings\username\Desktop\Borland\BCC55\Bin\bcc32.exe” “C:\Documents and Settings\username\Desktop\filename.cpp”

 
или, если заранее переместиться в папку "C:\Documents and Settings\username\Desktop" (например, путем выполнения cd "C:\Documents and Settings\username\Desktop"), т.е. когда "filename.cpp" находится в текущей директории, то можно так:
Код:
“C:\Documents and Settings\username\Desktop\Borland\BCC55\Bin\bcc32.exe” filename.cpp

 
а если еще заранее поместить путь к "bcc32.exe" в переменную Path, путем выполнения:
Код:
set Path=%Path%;C:\Documents and Settings\username\Desktop\Borland\BCC55\Bin
(или, например, через Control Panel > System > ...),
то можно будет запускать просто:
Код:
bcc32.exe filename.cpp

 
ps. но по-большому счету, все это не имеет прямого отношения к C++Builder и компиляторам вообще...

Всего записей: 319 | Зарегистр. 18-08-2004 | Отправлено: 07:57 19-03-2007 | Исправлено: royt, 08:01 19-03-2007
artiyom



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
royt

Цитата:
заключать все длинные имена файлов в кавычки.

Я именно так и делаю.  
Я ввел в RUN следующее:

Код:
"C:\Documents and Settings\artiyom\Desktop\Borland\BCC55\Bin\bcc32.exe" "C:\Documents and Settings\artiyom\Desktop\Borland\BCC55\Examples\StdLib\icecream.cpp"

Нажал Enter, никаких ошибок не выдало, появилось на миг окошко cmd и исчезло.  
Я пошел по адресу C:\Documents and Settings\artiyom\Desktop\Borland\BCC55\Examples\StdLib, но файла icecream.exe там не было, этого файла не было нигде на компе.  
Что я делаю не так?

Всего записей: 686 | Зарегистр. 31-08-2004 | Отправлено: 21:25 19-03-2007 | Исправлено: artiyom, 21:33 19-03-2007
royt

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
artiyom
Прежде всего, запусти нормально консольную сессию (Run... cmd.exe) - чтобы было видно, чего на экран выдается и что происходит.
В запустившейся консоли уже набирай то, что пытался запускать раньше и смотри результат, что там сообщается.
 
exe-шник не появится, пока у тебя программа не будет правильно скомпилирована. В первую очередь из .cpp файла должен быть получен .obj - смотри, скорее всего даже его нету (если что-то запускаешь неверно или компилятор обнаружил ошибки в программе).
 
упрости себе жизнь - если есть возможность, лучше размести компилируемые файлы в папке с путями без пробелов, поближе к корневой директории, чтобы из-за пробелов заморочек не было. То же самое касается компилятора, его директории установки (кстати, не дело это, устанавливать программы на рабочем столе, тем более для программиста).
 
ps. создай где-нибудь отдельный топик и гоу туда, там обсудим, здесь не совсем подходящее место для обсуждаемого вопроса.

Всего записей: 319 | Зарегистр. 18-08-2004 | Отправлено: 08:26 20-03-2007 | Исправлено: royt, 08:31 20-03-2007
artiyom



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
royt
Я выяснил, проблема вроде была в том, что файлы которы я пытался скомпилировать требовали несколько других файлов для компиляции. Я нашел файл для компиляции которого никаких других файлов не нужно было, и он скомпилировался нормально. Что касается работы с компилятором непосредственно из окна cmd, то ты прав, так действительно комфортнее. Если в дальнейшем с этим будут проблемы то уже создам отдельную тему.
 
А теперь новый вопрос. Есть ли для этого бесплатного компилятора какой-нибудь графический интерфейс? Или придется ставить весь IDE, чтобы комфортно с ним работать?

Всего записей: 686 | Зарегистр. 31-08-2004 | Отправлено: 21:20 20-03-2007
royt

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
возможно сейчас стоит пользоваться уже Turbo C++, он вроде бесплатный. Там есть IDE.

Всего записей: 319 | Зарегистр. 18-08-2004 | Отправлено: 11:05 22-03-2007 | Исправлено: royt, 11:06 22-03-2007
afiget



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет. Я с проблемой.
Есть огромный проект - более 20 млн строк. Часть проекта представляет собой модули для подключения всякой периферии, которые идут в исходниках. Собственно, именно поэтому проект такой огромный.
Проект изначально писали другие люди. Я занимаюсь добавлением новых функций в программу. Добавляю и отлаживаю.
Компиляция такого кол-ва строк занимает кучу времени.
Как можно сократить это время?
Может быть можно как-то модули для внешних устройств в уже скомпилированные файлы пересобрать и подключать уже скомпилированные модули.
Сейчас подключение происходит так:
#include "TModem.h"
#include "TPin.h"
#include "TCryptLib.h"
#include "NETdevice.h"
#include "Device.h"
#include "Shtrih.h"
#include "CPrinter.h"
 
Что посоветуете?

Всего записей: 545 | Зарегистр. 31-12-2005 | Отправлено: 15:52 22-03-2007 | Исправлено: afiget, 15:53 22-03-2007
OdesitVadim



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Программные
а) разбить на дллки
б) Перейти на другой компилятор
в) проверить, нет ли там мёртвого кода. зачистить немного. 20 млн - уж слишком - это не ОС?
Софтварные.
а) добавить оперативки
б) поставить более быстрый винт, с большим кешом, рейд массив
в) проц посильней
г) при наличии большого обёма памяти сделать рам диск. И пусть компилятор складывает туда свои временные файлы.

----------
Press any key to continue or any other key to exit
Пишите так, чтобы не было стыдно за нобелевскую премию.

Всего записей: 1568 | Зарегистр. 19-09-2003 | Отправлено: 16:07 22-03-2007
Tantos



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
1. Поищи по Яндексу "precompiled headers"
2. Что нужно сделать для увеличения скорости компиляции?
3. Компиляция большого проекта

Всего записей: 1038 | Зарегистр. 31-05-2005 | Отправлено: 06:42 23-03-2007
afiget



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо, посмотрю, попробую.

Цитата:
20 млн - уж слишком - это не ОС?

Нет
ПО для торговли. Куча поддерживаемой периферии. Драйвера в исходниках.
Почему так? А не спрашивайте. Ибо ответ знают только те, кто разрабатывал изначально.

Всего записей: 545 | Зарегистр. 31-12-2005 | Отправлено: 21:51 23-03-2007
UserX3

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Хочу использовать TIdCoderMD5 для шифрации инфы (дешифрировать не буду - пароль к локалке). Код Button1Click следующий

Код:
 
MD5->CodeString(Edit1->Text);
Edit2->Text = MD5->GetCodedData();
Edit3->Text = MD5->CompletedInput();
MD5->Reset();
 

В результате Edit2 очищаеться, а в Edit3 возвращаеться нечто вроде (в Edit1 пишет Edit1) :  

Код:
 
0;9}H?O|y$Ca??¦A?
 

Как можно заставить TIdCoderMD5 генерировать нормальный MD5?

Всего записей: 31 | Зарегистр. 02-09-2006 | Отправлено: 18:58 25-03-2007 | Исправлено: UserX3, 20:39 25-03-2007
royt

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
afiget
Цитата:
Может быть можно как-то модули для внешних устройств в уже скомпилированные файлы пересобрать и подключать уже скомпилированные модули.
Именно так и стоит поступить. Оформить отдельный проект, его назначением сделать создание одинственной или целого набора библиотек (файлы .lib). В состав этого проекта включить редко- или вообще неизменяемяе модули, тогда перекомпилировать его придется только изредка (а может и вообще не придется). Подключать полученный(ые) .lib к главному проекту.
 
Можно также заранее компилировать вообще только объектные файлы (.obj), и их уже подключать к итоговому проекту (также, как .lib). Но концептуально это менее правильно - объектников наверняка очень много (по количеству .c/.cpp модулей) и поэтому управлять такой сворой .obj-файлов будет непросто (подключать каждый объектник к итоговому проекту, управлять им). Проще объединить их заранее в одну или несколько .lib и потом уже с этими .lib-ами работать.
 
afiget
Цитата:
#include "TModem.h"  
#include "TPin.h"  
#include "TCryptLib.h"  
#include "NETdevice.h"  
#include "Device.h"  
#include "Shtrih.h"  
#include "CPrinter.h"
Эти все заголовники и ведут к "включению" миллионов строк в компилируемые файлы? Или миллионы строк - всё-таки находятся в .c/.cpp модулях? Если второе - то рецепт описан выше. Если миллионы строк в заголовниках - то стоит исключить ненужные заголовники и/или отредактировать/разбить их содержимое с целью оставить только нужное. В общем, необходимо правильно и оптимально разбить модули проекта на части, распределив "зависимости" между модулями (которые известны только Вам, поэтому более конкретно тут трудно что-то написать).
 
Да, и если речь о C++Builder 6 - то для ускорения компиляции дополнительно также стоит воспользоваться bcc32pch IDE plugin, легко найти поиском в интернете.

Всего записей: 319 | Зарегистр. 18-08-2004 | Отправлено: 11:08 26-03-2007 | Исправлено: royt, 11:17 26-03-2007
JohnC



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
На форме есть Edit, при создании формы в него заношу текст большей длинны чем сам Edit, в нем показывается начало текста.
А как сделать, чтоб в Edit`e показывалось окончание строки текста?

Всего записей: 198 | Зарегистр. 14-07-2004 | Отправлено: 21:51 31-03-2007
Garrett

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
JohnC
void __fastcall TForm1::FormCreate(TObject *Sender)
{
    Edit1->Text = "wqytey eytryewt ew rewytrytew";
    Edit1->SelStart = Edit1->Text.Length();
}

Всего записей: 2739 | Зарегистр. 16-10-2003 | Отправлено: 23:01 31-03-2007
JohnC



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Garrett
работает, СПС

Всего записей: 198 | Зарегистр. 14-07-2004 | Отправлено: 09:20 01-04-2007 | Исправлено: JohnC, 09:20 01-04-2007
RuKamikadze

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Приветствую всех!
 
Проблема: создаю поток и загружаю информацию в файл в БИНАРНОМ режиме, потом открываю этот файл с помощью текстового редактора - и вижу НОРМАЛЬНЫЕ символы, а не "закарючки", которые должны быть. Т.е. в файл записывается информация не в бинарном режиме, а в текстовом. Ниже программа:
 
#include <vcl.h>
#pragma hdrstop
#include <stdlib.h>
#include <fstream.h>
#include <fcntl.h>
#include <bitset.h>
void __fastcall TForm1::Button1Click(TObject *Sender)
{
        short int Array_X[3]={1,2,3};
 
        char *file_nameX = "archive/array_X.txt";
        ofstream outFileX;
 
        outFileX.open(file_nameX,ios::binary);
        for(int i=0; i<3; i++)
                outFileX<<Array_X[i];
        outFileX.close();
}  
Как сделать так, что бы информация записывалась в бинарном режиме?
Заранее благадрен!

Всего записей: 6 | Зарегистр. 02-04-2007 | Отправлено: 14:01 02-04-2007
Garrett

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
RuKamikadze
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    short int Array_X[3]={1,2,3};
    char *file_nameX = "array_X.txt";
    ofstream outFileX;
    outFileX.open(file_nameX,ios::binary);
    outFileX.write( (char*)Array_X, sizeof(Array_X) );
    outFileX.close();
}

Всего записей: 2739 | Зарегистр. 16-10-2003 | Отправлено: 15:36 02-04-2007
RuKamikadze

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо большое Garrett - решил проблему.
Но неужели нельзя обойтись без этих функций read/write и работать с потоками напрямую, как в моем примере?

Цитата:
outFileX<<Array_X[i];  

Ведь это намного понятнее и потом, если мне вдруг понадобится прочитать определенное количество бит из бинарного файла, начиная с n-го, тогда что? Ведь здесь уже функция read - не поможет, если я правильно понимаю.

Всего записей: 6 | Зарегистр. 02-04-2007 | Отправлено: 23:35 02-04-2007
Garrett

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
RuKamikadze
Я не знаю ни одной функции побитного чтения из файла. Не сталкивался с такими проблемами. При желании на байт всегда можно наложить структуру с нужным тебе кол-вом битов.
Имхо, при использовании "<<" в ofstream всегда будет текст, если ты не переопределишь под себя "<<"...

Всего записей: 2739 | Зарегистр. 16-10-2003 | Отправлено: 23:53 02-04-2007 | Исправлено: Garrett, 23:56 02-04-2007
RuKamikadze

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
И еще один вопросик к пользователям Borland C++ Builder 6:
 
Установил на два компьютера один и тот же компонент КомПорта: "XComDrv" ver. 1.0 $rev. 20 March 2002. Создал проект с использованием этого компонента на первом компьютере. При переносе проекта на второй компьютер в процессе компиляции вылезает ошибка в h-файле:  
[C++ Error] MathModUnit.h(10): E2209 Unable to open include file 'XComDrv.hpp'
в коде:
#ifndef MathModUnitH
#define MathModUnitH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include "XComDrv.hpp"
#include "CSPIN.h"
 
Кто-нибудь сталкивался с подобной проблемой? Как её решить?

Всего записей: 6 | Зарегистр. 02-04-2007 | Отправлено: 00:08 03-04-2007
Garrett

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
RuKamikadze
Исправь в проекте пути к этому компоненту.

Всего записей: 2739 | Зарегистр. 16-10-2003 | Отправлено: 00:18 03-04-2007
Открыть новую тему     Написать ответ в эту тему

Страницы: 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

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » FAQ по Borland C++ Builder


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru

Рейтинг.ru