Артем
sprata
Mодератор
Завкаф
Карма: +40/-5
Offline
Пол:
Сообщений: 1107
|
|
« Ответ #20 : Июнь 24, 2008, 11:56:14 » |
|
Скажите пожалуйста, поддерживает ли Borland C++ 3.11 работу с исключениями, и использование операторов try, throw, catch ?
Самому пока разобраться не удалось, потому что при вводе этих операторов они выделяются черным цветом, и якобы компилятор их понимает, но при компиляции пишет "Expression syntax". В хелпе 3.11-ого описание этих операторов также отсутствует.
|
|
|
Записан
|
|
|
|
Артем
sprata
Mодератор
Завкаф
Карма: +40/-5
Offline
Пол:
Сообщений: 1107
|
|
« Ответ #21 : Июль 15, 2008, 08:49:22 » |
|
Подскажите пожалуйста, как в С++ Builder 6.0 правильно создать исполняемый EXE файл, который можно было бы запускать на других компах без установленного Билдера ? Я создал проект, потом сохранил все файлы проекта - Save All. Полсе запуска - Run, создался исполняемый файл, но я на всякий случай запустил еще Make Project и Build Project. В итоге в папке проекта оказалось 17 файлов: - Project1.bpr
- Unit1.h
- Project1.cpp
- Unit1.cpp
- Unit1.dfm
- Project1.obj
- Unit1.obj
- Project1.res
- Project1.exe
- Project1.~bpr
- Project1.~cpp
- Unit1.~cpp
- Unit1.~ddp
- Unit1.~dfm
- Unit1.~h
- Unit1.ddp
- Project1.tds
Но при попытке запустить эту прогу на компе без Билдера вылезла ошибка, что не был найден некий rtl60.bpl
|
|
|
Записан
|
|
|
|
EvilMax
Администратор
Завкаф
Карма: +59/-0
Offline
Пол:
Сообщений: 1072
Злой и страшный :)
|
|
« Ответ #22 : Июль 15, 2008, 10:24:15 » |
|
Но при попытке запустить эту прогу на компе без Билдера вылезла ошибка, что не был найден некий rtl60.bpl Грустный Вариантов два: 1. Поставляй необходимые библиотеки *.bpl вместе с программой. В частности, rtl60.bpl, ну и на что еще ругнётся. 2. Собери статически исполняемый файл. Должна быть опция или в свойствах проекта или в свойствах линкера - не помню уже БаГландовские ИДЕ под винду... Тогда все run-time библиотеки на этапе компоновки (линковки) будут встроены в exe-шник. Ну и размер его подрастёт соответственно. 5-7 метровый exe-файл с почти пустой программой в таком случае - норма =) кажите пожалуйста, поддерживает ли Borland C++ 3.11 работу с исключениями, и использование операторов try, throw, catch ?
Самому пока разобраться не удалось, потому что при вводе этих операторов они выделяются черным цветом, и якобы компилятор их понимает, но при компиляции пишет "Expression syntax". В хелпе 3.11-ого описание этих операторов также отсутствует. Не поддерживает. NotImplementedException
|
|
|
Записан
|
Оптимальная концентрация кофе - это когда код уже дает советы, как его написать, но еще не спорит с тобой и не подкалывает в случае неудач... --- Существует три способа распространения программного обеспечения: воровство, грабёж и обмен краденым. (c) Неизвестный программист
|
|
|
LazarusLong
Ирландский доброволец
Проректор
Карма: +181/-7
Offline
Пол: Награды:
Сообщений: 6134
Ukrainian by birth, Irish by the grace of God
|
|
« Ответ #23 : Июль 16, 2008, 12:52:26 » |
|
artem90, в общем последовательность такая:
Вкладка Project -> Project Opions -> Compiler Жмем кнопку Release
Вкладка Project -> Project Opions -> Packages Убираем галочку Build with run-time packages
В некоторых случаях нужно сделать еще и: Вкладка Project -> Project Opions -> Linker
Убираем галочку Use dynamic RTL
Если это сделаешь - все нужные bpl зашьются в экзешник.
Может где-то с названиями вкладок попутал, сейчас нету установленного билдера под рукой, но думаю разберешься.
Этого достаточно, если твоя программа не использует такую гадость, как BDE
|
|
« Последнее редактирование: Июль 28, 2008, 07:36:32 от artem90 »
|
Записан
|
Когда ему нужно - он русский, когда нужно - украинец, а когда ему ни хрена не нужно - он ирландец.
"...Он любил говорить факин щит Когда что-то не так ему Принимал он свой самый ирландский вид И кидался трубкой в жену..."
|
|
|
Артем
sprata
Mодератор
Завкаф
Карма: +40/-5
Offline
Пол:
Сообщений: 1107
|
|
« Ответ #24 : Июль 16, 2008, 10:24:28 » |
|
LazarusLong, спасибо большое! Помогло
|
|
|
Записан
|
|
|
|
Магнетон Бора
ЖИЗНЬ - БАЯН
Cтудент
Карма: +1/-0
Offline
Пол:
Сообщений: 61
|
|
« Ответ #25 : Февраль 23, 2009, 10:42:25 » |
|
Уважаемые коллеги, подскажите кто знает, я взял небольшой примерчик бинарного дерева и реализую его на VC++ 2008, в примере используется шаблонный класс вектор предназначенный для хранения любых массивов данных, но вот только VC ругается на то, что невозможно подключить заголовочный файл с прототипом данного вектора, я думаю может я неправильно написал заголовочный файл, подскажите, если кто знает, в help глянуть не могу, т.к. у меня урезанная версия VС. #include "stdafx.h" #include "conio.h" #include "stdio.h" #include "iostream.h" #include "math.h" #include "vector.h"
template<class T> class BTreeNode {
private : T value; BTreeNode<T> *left; BTreeNode<T> *right;
public :
BTreeNode(void); BTreeNode(T value); BTreeNode(BTreeNode<T>); ~BTreeNode();
void SetLeft(BTreeNode<T> *node) { left = node; } void SetRight(BTreeNode<T> *node) { right = node; } T GetValue() { return value; } void SetValue(T value) { this->value = value; } BTreeNode<T>* GetLeft() { return left; } BTreeNode<T>* GetRight() { return right; } void RemoveChild(int index); void Traverse(vector<BTreeNode<T>*> &v, BTreeNode<T> *node); };
template<class T> BTreeNode<T>::BTreeNode(void) { left = NULL; right = NULL: };
template<class T> BTreeNode<T>::BTreeNode(T value) { this->value = value; this->right = NULL; this->left = NULL; };
template<class T> BTreeNode<T>::~BTreeNode() { if(right) { delete right; } if(left ) { delete left; } };
template<class T> void BTreeNode<T>::Traverse(vector<BTreeNode<T>*> &v, BTreeNode<T> *node) { v.push_back(node); cout<<node->GetValue()<<endl; if(node->left) { Traverse(v,node->left); };
if(node->right) { Traverse(v,node->right); } };
template<class T> void AppendValue(BTreeNode<T> **node, T x) { if(! *node) { BTreeNode<T> *n = new BTreeNode<T>(x); *node = n; delete n; }
else { if((*node)->GetValue > x ) { BTreeNode<T> *left = (*node)->GetLeft(); Appendalue(&left,x); (*node)->SetLeft(left); }
else { BTreeNode<T> *right = (*node)->GetLeft(); Appendalue(&right,x); (*node)->SetRight(right); } }
int main(int argc, char* argv[]) { return 0; }
|
|
|
Записан
|
|
|
|
tos
|
|
« Ответ #26 : Февраль 23, 2009, 11:15:27 » |
|
для начала #include <vector> а ещё он в неймспейсе std так что обращася к нему или std::vector или using namespace std; пропиши в начале
|
|
|
Записан
|
|
|
|
ZaQ
Бакалавр
Карма: +6/-1
Offline
Пол:
Сообщений: 128
|
|
« Ответ #27 : Февраль 23, 2009, 11:28:36 » |
|
Вектор уже проинклужен, хоть и в старой нотации. А ошибка скорее всего именно в нэймспейсах.
|
|
|
Записан
|
|
|
|
Магнетон Бора
ЖИЗНЬ - БАЯН
Cтудент
Карма: +1/-0
Offline
Пол:
Сообщений: 61
|
|
« Ответ #28 : Февраль 23, 2009, 11:38:40 » |
|
Блин (((( прописал using namespace std в начале, но не помогает (((((
|
|
|
Записан
|
|
|
|
tos
|
|
« Ответ #29 : Февраль 23, 2009, 11:41:53 » |
|
не стоит поддержка С++ для MSVC =) сорри, не помогу.
|
|
|
Записан
|
|
|
|
Магнетон Бора
ЖИЗНЬ - БАЯН
Cтудент
Карма: +1/-0
Offline
Пол:
Сообщений: 61
|
|
« Ответ #30 : Февраль 23, 2009, 11:52:26 » |
|
Ошибка выходит вот такая
c:\users\acer\documents\ìêèò\ëàáîðàòîðíûå ðàáîòû\lab1\btree\btree.cpp(4) : fatal error C1083: Cannot open precompiled header file: 'Debug/BTree.pch': No such file or directory Error executing cl.exe.
Я пробывал по-разному инклудить вектор:
#include <vector.h>
#include <vector>
#include "vector"
#include "vector.h"
Все бесполезно ((((
|
|
|
Записан
|
|
|
|
tos
|
|
« Ответ #31 : Февраль 23, 2009, 11:56:07 » |
|
ну инклудь для начала так #include <vector> а ошибка у тебя в использовании precompiled header. в опциях проекта попробуй отключить его "don`t use precompiled header" ищи в графе "precompiled header"
|
|
|
Записан
|
|
|
|
Магнетон Бора
ЖИЗНЬ - БАЯН
Cтудент
Карма: +1/-0
Offline
Пол:
Сообщений: 61
|
|
« Ответ #32 : Февраль 24, 2009, 12:41:41 » |
|
неа все равно не получается (
|
|
|
Записан
|
|
|
|
Артем
sprata
Mодератор
Завкаф
Карма: +40/-5
Offline
Пол:
Сообщений: 1107
|
|
« Ответ #33 : Февраль 24, 2009, 12:53:49 » |
|
fatal error C1083: Cannot open precompiled header file: 'Debug/BTree.pch': No such file or directory Сегодня такая же ошибка преследовала и меня Правда я юзал VC++ 6.0. Помогла просто пересборка проекта Build -> Rebuild All. Магнетон Бора, попробуй, может быть поможет.
|
|
|
Записан
|
|
|
|
ZaQ
Бакалавр
Карма: +6/-1
Offline
Пол:
Сообщений: 128
|
|
« Ответ #34 : Февраль 24, 2009, 12:55:31 » |
|
прекомпилед хидеры оключать надо для сппшников, а не только для проекта.
|
|
|
Записан
|
|
|
|
tos
|
|
« Ответ #35 : Февраль 24, 2009, 09:18:00 » |
|
странно что CPP не наследуют от проекта настройки и огромная просьба! выкладывайте тексты ошибок, а не свои догадки относительно их причины, ок?
|
|
|
Записан
|
|
|
|
ZaQ
Бакалавр
Карма: +6/-1
Offline
Пол:
Сообщений: 128
|
|
« Ответ #36 : Февраль 24, 2009, 09:59:31 » |
|
Видимо не наследует, пару дней назад с этим сталкивался. Точнее отключение в проекте не работает в случае если дя этого сппшника были ранее установлены свои настройки прекомпилед хидера.
|
|
|
Записан
|
|
|
|
tos
|
|
« Ответ #37 : Февраль 24, 2009, 10:04:51 » |
|
Точнее отключение в проекте не работает в случае если дя этого сппшника были ранее установлены свои настройки прекомпилед хидера. так и есть
|
|
|
Записан
|
|
|
|
Артем
sprata
Mодератор
Завкаф
Карма: +40/-5
Offline
Пол:
Сообщений: 1107
|
|
« Ответ #38 : Февраль 25, 2009, 07:23:36 » |
|
Помогите плз решить такую проблему: Юзаю VC++ 6.0. И периодически возникает ошибка линкера при попытке запустить прогу на выполнение. LINK : fatal error LNK1104: cannot open file "Debug/17.exe" Приходится каждый раз копировать весь код в новый проект и там запускать. Есть ли нормальное решение этой проблемы ? ЗЫ: удалить файл 17.exe не получается, пишет что нет доступа. А Unlocker грит что файл не занят никаким процессом.
|
|
|
Записан
|
|
|
|
|