Артем
sprata
Mодератор
Завкаф
Карма: +40/-5
Offline
Пол:
Сообщений: 1107
|
|
« : Апрель 13, 2008, 10:35:22 » |
|
Можно ли с помощью компилятора Borland C++ 3.11, скрыть в диспетчере задач WinXP процесс написанной программы ?
|
|
« Последнее редактирование: Апрель 29, 2008, 09:16:53 от Storm »
|
Записан
|
|
|
|
EvilMax
Администратор
Завкаф
Карма: +59/-0
Offline
Пол:
Сообщений: 1072
Злой и страшный :)
|
|
« Ответ #1 : Апрель 13, 2008, 10:41:03 » |
|
Сомневаюсь. Не могу точно сказать, сможет ли нормально bcw добраться до всего нужного API Windows XP, но bc - точно не сможет. Вообще, если собираетесь собирать программу под свежие версии операционок, пользуйтесь свежими компиляторами и библиотеками.
|
|
|
Записан
|
Оптимальная концентрация кофе - это когда код уже дает советы, как его написать, но еще не спорит с тобой и не подкалывает в случае неудач... --- Существует три способа распространения программного обеспечения: воровство, грабёж и обмен краденым. (c) Неизвестный программист
|
|
|
Артем
sprata
Mодератор
Завкаф
Карма: +40/-5
Offline
Пол:
Сообщений: 1107
|
|
« Ответ #2 : Апрель 22, 2008, 04:15:02 » |
|
Установил C++ Builder 6. Ничего в настройках не менял. В проекте, который открылся автоматическм при 1-ом запуске, удалил все содержимое и написал вот такой код: #include <iostream.h>
void main() { cout<<"Hello"<<endl; } Линкер выдает 2 ошибки: Unresolved external '_Form1' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\PROJECT1.OBJ Unresolved external 'TForm1::' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\PROJECT1.OBJ Пробовал создать новый проект и написать тот же код, но линкер все равно ругается. Может кто-нибудь с таким уже сталкивался ? Что это может быть ?
|
|
|
Записан
|
|
|
|
Sochin
Злой модератор
Декан
Карма: +108/-6
Offline
Пол:
Сообщений: 1518
|
|
« Ответ #3 : Апрель 22, 2008, 04:39:08 » |
|
artem90
Создавай проект консольного приложения.
|
|
|
Записан
|
Говорят, когда компьютер сгорает, перед взором микропроцессора за долю секунды проносятся все операции, которые он когда-либо совершил... 壯鎭
|
|
|
Артем
sprata
Mодератор
Завкаф
Карма: +40/-5
Offline
Пол:
Сообщений: 1107
|
|
« Ответ #4 : Апрель 22, 2008, 04:49:34 » |
|
Создавай проект консольного приложения. Создавал ( Файл -> Новый -> Другое -> Мастер консоли ), но тогда 2 другие ошибки линкер выдает: Unresolved external '__InitVCL' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\LIB\CP32MTI.LIB|crtlvcl Unresolved external '__ExitVCL' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\LIB\CP32MTI.LIB|crtlvcl
|
|
|
Записан
|
|
|
|
vimmax
Mодератор
Декан
Карма: +42/-3
Offline
Пол: Награды:
Сообщений: 1713
♪♪ ♫ ♪♪ ♫ ♪♪ ♫ ♪♪
|
|
« Ответ #5 : Апрель 22, 2008, 05:20:14 » |
|
artem90 когда создаешь консольное приложение мастером, то оно должно сразу запуститься без ошибок. Или ты что-то исправил неправильно, или он стал криво (не знаю что там у тебя).
попробуй создать приложение мастером и ничего не исправляя запустить его.
|
|
|
Записан
|
♪♪ ♫ LET FOREVER BE ♫ ♪♪ ♫ ♪♪ ♪♪ ♫
|
|
|
LazarusLong
Ирландский доброволец
Проректор
Карма: +181/-7
Offline
Пол: Награды:
Сообщений: 6134
Ukrainian by birth, Irish by the grace of God
|
|
« Ответ #6 : Апрель 22, 2008, 05:46:14 » |
|
В окно Console Wizard убери птичку Use VCL (она по умолчанию там стоит). И еще Файл -> Новый -> Другое -> Мастер консоли Ты что - какую-то гадость типа русификатора на Билдер поставил? Вообще не рекомендую подобное делать. IT и русский язык дружат редко.
|
|
|
Записан
|
Когда ему нужно - он русский, когда нужно - украинец, а когда ему ни хрена не нужно - он ирландец.
"...Он любил говорить факин щит Когда что-то не так ему Принимал он свой самый ирландский вид И кидался трубкой в жену..."
|
|
|
Артем
sprata
Mодератор
Завкаф
Карма: +40/-5
Offline
Пол:
Сообщений: 1107
|
|
« Ответ #7 : Апрель 22, 2008, 05:58:34 » |
|
В окно Console Wizard убери птичку Use VCL (она по умолчанию там стоит). LazarusLong, спс большое! заработало ! Еще хотел спросить, на будущее: то что у меня сразу не работало (с обычным проектом) - это так и должно быть, или это с Билдером моим глюки, что только в консоли работает ?
|
|
|
Записан
|
|
|
|
LazarusLong
Ирландский доброволец
Проректор
Карма: +181/-7
Offline
Пол: Награды:
Сообщений: 6134
Ukrainian by birth, Irish by the grace of God
|
|
« Ответ #8 : Апрель 22, 2008, 06:09:59 » |
|
artem90 потому что ты лихим движением руки снес имплементацию конструктора главной формы (ведь приложение у тебя создано было по умолчанию VCL-вское). Сам класс главной формы объявлен в Unit1.h потому ты его и не заметил ))) __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { }
|
|
|
Записан
|
Когда ему нужно - он русский, когда нужно - украинец, а когда ему ни хрена не нужно - он ирландец.
"...Он любил говорить факин щит Когда что-то не так ему Принимал он свой самый ирландский вид И кидался трубкой в жену..."
|
|
|
Артем
sprata
Mодератор
Завкаф
Карма: +40/-5
Offline
Пол:
Сообщений: 1107
|
|
« Ответ #9 : Апрель 23, 2008, 06:32:49 » |
|
Есть текстовый файл "C:\1.txt" : 1 2 3 4 5 После последнего символа (5-ки) нет пробелов и переходов на следующую строку, поэтому файл подготовлен корректно. Код программы для вывода содержимого этого файла на экран: #include <iostream.h> #include <fstream.h> #include <iomanip.h> #include <conio.h>
void main() { int a; ifstream fin("C:/1.txt"); while(fin.good()) { fin>>a; cout<<setw(4)<<a; } getch(); } Результат выполнения в компиляторах C++ Builder 6 и MS Visual C++ 6 : 1 2 3 4 5 Результат выполнения в компиляторе Borland C++ 3.11 : 1 2 3 4 5 5 ВОПРОС: почему BC 3.11 добавляет в конце лишнюю 5-ку ?
|
|
|
Записан
|
|
|
|
EvilMax
Администратор
Завкаф
Карма: +59/-0
Offline
Пол:
Сообщений: 1072
Злой и страшный :)
|
|
« Ответ #10 : Апрель 23, 2008, 06:37:46 » |
|
ВОПРОС: почему BC 3.11 добавляет в конце лишнюю 5-ку ? Потому что в BC 3.11 STL кривая... Эта фишка с потоками известная. И я на нее наступал, и другие преподаватели. Год назад Савкова показала, напомнила. В общем, не мучайся.
|
|
|
Записан
|
Оптимальная концентрация кофе - это когда код уже дает советы, как его написать, но еще не спорит с тобой и не подкалывает в случае неудач... --- Существует три способа распространения программного обеспечения: воровство, грабёж и обмен краденым. (c) Неизвестный программист
|
|
|
Артем
sprata
Mодератор
Завкаф
Карма: +40/-5
Offline
Пол:
Сообщений: 1107
|
|
« Ответ #11 : Апрель 23, 2008, 06:39:06 » |
|
Потому что в BC 3.11 STL кривая... Эта фишка с потоками известная. И я на нее наступал, и другие преподаватели. Ну а если лабы пишем на этом компилляторе, то что ж тогда делать ?
|
|
|
Записан
|
|
|
|
EvilMax
Администратор
Завкаф
Карма: +59/-0
Offline
Пол:
Сообщений: 1072
Злой и страшный :)
|
|
« Ответ #12 : Апрель 23, 2008, 06:42:18 » |
|
Ну а если лабы пишем на этом компилляторе, то что ж тогда делать ? Есть такое слово workaround Т.е. если баг неустраним либо не локализуется, то надо его обойти, т.е. написать программу с учётом того, что баг присутствует. Понимаю, что, на самом деле, это не смешно, но в условиях наличия такой техники и наличия отсутствия лаборанта в 803 аудитории (хотя, кто-то деньги получает, и этот вопрос я подниму на кафедре, ибо какого ... ?!!) деваться, увы, некуда. 5-й Borland разве что ставить? Но не знаю, как ему будет там "житься"...
|
|
|
Записан
|
Оптимальная концентрация кофе - это когда код уже дает советы, как его написать, но еще не спорит с тобой и не подкалывает в случае неудач... --- Существует три способа распространения программного обеспечения: воровство, грабёж и обмен краденым. (c) Неизвестный программист
|
|
|
Артем
sprata
Mодератор
Завкаф
Карма: +40/-5
Offline
Пол:
Сообщений: 1107
|
|
« Ответ #13 : Апрель 23, 2008, 06:44:34 » |
|
Есть такое слово workaround Т.е. если баг неустраним либо не локализуется, то надо его обойти, т.е. написать программу с учётом того, что баг присутствует. спс, буду пробовать.
|
|
|
Записан
|
|
|
|
vimmax
Mодератор
Декан
Карма: +42/-3
Offline
Пол: Награды:
Сообщений: 1713
♪♪ ♫ ♪♪ ♫ ♪♪ ♫ ♪♪
|
|
« Ответ #14 : Апрель 24, 2008, 05:15:47 » |
|
EvilMax поставьте Bloodshed Dev-C++ )))) или gcc с оболочкой.
или Ms VC - как обычно.
|
|
|
Записан
|
♪♪ ♫ LET FOREVER BE ♫ ♪♪ ♫ ♪♪ ♪♪ ♫
|
|
|
Артем
sprata
Mодератор
Завкаф
Карма: +40/-5
Offline
Пол:
Сообщений: 1107
|
|
« Ответ #15 : Май 16, 2008, 08:20:01 » |
|
Подскажите пожалуйста, в чем причина такой проблемы: при попытке запустить код на C++ Builde 6 (Console Wizard) возникает следующая ошиба: "Exception class EAccessVolation" (см. рисунок). Сначала я думал, что где-то допустил ошибку при работе с динамической памятью. Перечитал весь код, но ошибку найти не удалось. Чтобы проверить код, решил запустить его на других компиляторах: MS Visual C++ 6 и BC 3.11 никаких ошибок НЕ выдали. Погуглил, но узнал только то, что это одна из "Ошибок времени выполнения". И вот теперь возникает вопрос: это все таки я где-то "напорол" в коде, или это какая-то особенность или глюк Билдера ?
|
|
|
Записан
|
|
|
|
LazarusLong
Ирландский доброволец
Проректор
Карма: +181/-7
Offline
Пол: Награды:
Сообщений: 6134
Ukrainian by birth, Irish by the grace of God
|
|
« Ответ #16 : Май 16, 2008, 08:39:45 » |
|
artem90, ошибка в 17-й строке.
|
|
|
Записан
|
Когда ему нужно - он русский, когда нужно - украинец, а когда ему ни хрена не нужно - он ирландец.
"...Он любил говорить факин щит Когда что-то не так ему Принимал он свой самый ирландский вид И кидался трубкой в жену..."
|
|
|
Артем
sprata
Mодератор
Завкаф
Карма: +40/-5
Offline
Пол:
Сообщений: 1107
|
|
« Ответ #17 : Май 16, 2008, 08:45:40 » |
|
ошибка в 17-й строке. LazarusLong, возможно, я не совсем правильно сформулировал свой вопрос. Я НЕ имел ввиду: "Найдите мне ошибку в коде", если она там все таки есть, то я найду ее сам. Я хотел просто уточнить, может ли возникать такая ошибка выполнения из-за особенностей компилятора C++ Builder 6 ? Потому что в других компиляторах код работает правильно и без ошибок.
|
|
|
Записан
|
|
|
|
LazarusLong
Ирландский доброволец
Проректор
Карма: +181/-7
Offline
Пол: Награды:
Сообщений: 6134
Ukrainian by birth, Irish by the grace of God
|
|
« Ответ #18 : Май 16, 2008, 08:54:27 » |
|
artem90, EAccessViolation возникает при ошибке доступа к памяти. Не зная какой код эту ошибку сгенерировал, о причинах можно только догадываться.
|
|
|
Записан
|
Когда ему нужно - он русский, когда нужно - украинец, а когда ему ни хрена не нужно - он ирландец.
"...Он любил говорить факин щит Когда что-то не так ему Принимал он свой самый ирландский вид И кидался трубкой в жену..."
|
|
|
EvilMax
Администратор
Завкаф
Карма: +59/-0
Offline
Пол:
Сообщений: 1072
Злой и страшный :)
|
|
« Ответ #19 : Май 16, 2008, 10:14:25 » |
|
artem90, скорее всего, действительно бока в коде. Выход за границы массива, попытка запихнуть данных в строку, больше чем отведено под неё памяти (например, если не учесть 0-символ), обращение к указателю, память под который не отведена и т.п. Ищи.
|
|
|
Записан
|
Оптимальная концентрация кофе - это когда код уже дает советы, как его написать, но еще не спорит с тобой и не подкалывает в случае неудач... --- Существует три способа распространения программного обеспечения: воровство, грабёж и обмен краденым. (c) Неизвестный программист
|
|
|
|