Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на C / C++

Выпуск № 137
от 03.12.2002, 04:40

Администратор:
Имя: Nick.Box
URL: Информационный ресурс
ICQ: 365124
[censored], [censored]
О рассылке:
Задано вопросов: 406
Отправлено ответов: 886
Активность: 218.2 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Avl2k
Статус: Доверительный
Общий рейтинг: 126.92
[Подробней >>]
Gibbel
Статус: Профессиональный
Общий рейтинг: 108.65
URL: Страничка обо мне и моих друзьях
[Подробней >>]
vitya
Статус: Профессиональный
Общий рейтинг: 108.14
[Подробней >>]
 
Jadd
Статус: Профессиональный
Общий рейтинг: 141.79
[Подробней >>]
Switcher
Статус: Начальный
Общий рейтинг: 138.46
[Подробней >>]
wiggler
Статус: Начальный
Общий рейтинг: 104.49
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 400. Эксперты...почему так происходит: в классе присуцтвуют перегруженные операторы ввода/вывода (>> <<).... (ответов: 1)
Вопрос № 402. Доброе время суток , эксперты ! ******************************* 1.Как при запуске программы определи... (ответов: 5)
Вопрос № 403. Дарова! ВОт есть Visual C++ Buldier C++ , но это же среды разработки? А С++ получается идёт как отде... (ответов: 4)

Вопросов: 3, ответов: 10


 Вопрос № 400

Эксперты...почему так происходит: в классе присуцтвуют
перегруженные операторы ввода/вывода (>> <<). Все рабо-
тает нормально, но как только я запихиваю этот класс
в файл с расширением *.h и пытаюсь его включить в ли-
стинг с помошью дерективы #include программа зверски
ругается и указывает на кучу ошибак (которых небыло)
связанную с перегруженными операторами ввода/вывод.
Из-за чего это и как с этим бороться?
-------------------------------
В поле преложение именно та часть класса которая тупит.


Приложение:


Вопрос отправлен: 29.11.2002, 08:16
Отправитель: kuper

[Следующий вопрос >>] [Список вопросов]

Отвечает Avl2k

Здравствуйте, kuper!
Вы хотя бы написали, какой компилятор, каких именно ошибок. Лично у меня компилятор (VC++ 6.0) выдает только два предупреждения С4715 (not all control paths return a value) в matrix::in и matrix::out. Правда я вставил перед классом using namespace std; (либо можно перед istream, ostream расставить std::). Еще возможно Вы пишете тела операторов в заголовочном файле, тогда необходимо ставить перед ними inline.
С уважением, Avl2k.

Ответ отправлен: 29.11.2002, 10:21
Отправитель: Avl2k


 Вопрос № 402

Доброе время суток , эксперты !
*******************************
1.Как при запуске программы определить,
есть ли уже ее экземпляр в памяти ?
2.Как в MFC самому задать классу диалогового окна
имя ?



Вопрос отправлен: 29.11.2002, 16:41
Отправитель: IceWINteR (brothers@atnet.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Avl2k

Добрый день, IceWINteR!
1. Обычно используют следующие варианты:
- глобально рассылают уникальное сообщение
(BroadcastSystemMessage/BroadcastSystemMessageEx);
- ищут окно при помощи FindWindow;
- создают уникальный именованный pipe (CreateNamedPipe);
- создают именованный semaphore(CreateSemaphore/OpenSemaphore);
2. Не совсем понял вопрос, если имелось ввиду имя C++ класса, создаваемого ClassWizard, то встаем на ресурс диалога, говорим Ctrl-W, создать новый класс, задаем имя.
С уважением, Avl2k.

Ответ отправлен: 29.11.2002, 17:41
Отправитель: Avl2k


Отвечает Gibbel

Доброе время суток, IceWINteR!
Вот статейка, правда, примеры на Delphi, но все работает и на других языках...

Ответ отправлен: 29.11.2002, 17:28
Отправитель: Gibbel


Отвечает vitya

Приветствую Вас, IceWINteR!
Отвечу на первый вопрос.
Я делаю это так:
пробую создать именной мьютекс - CreateMutex.
Теперь, если мьютекс с таким именем уже создан, то функция воазвращает определенный результат (подробности в MSDN), после чего просто вызываешь ::PostQuitMessage(0); и программа красиво завершается.
Второй же вопрос. Если диалог создается Визардом, то в самом конце ты можешь написать имена классов. Если же ты делаешь добваления диалогого ресурса в уже созданный проект, то там так же ты пишешься имя своего диалога. Если же ты уже создал диалог и теперь хочешь изменить его имя, то просто во всех файлах замени COldNameDlg на CNewNameDlg и все будет работать.
Удачи.

Ответ отправлен: 29.11.2002, 17:19
Отправитель: vitya


Отвечает Jadd

Приветствую Вас, IceWINteR!
1)Легко. В функции WinMain есть параметр такой hPrevInstance. Можно его проверять. Можно использовать именованные объекты ядра, типа именованных мьютексов. В этом случае, есть возможность на уровне ядра проверять существование объекта с таким именем. Но с мьютексами надо осторожнее работать, т.к. они заставляют переключаться винду из пользовательского режима в привелегированый режим и обратно, что занимает 1000 циклов проца. Если тебя это не пугает, то - вперед.
2)Не понял вопроса? При создании диалога в ресурсах и потом при переходе в ClassWizard он сам предложит тебе назвать свой класс. Может я че не понял?

Ответ отправлен: 30.11.2002, 01:55
Отправитель: Jadd


Отвечает Switcher

Добрый день, IceWINteR!
Попробуй так:
hWnd=FindWindow("имя проги",NULL);
if (hWnd) "Приложение уже запущено!";
Под MFC:
CWnd::FindWindow(_T("имя проги"),NULL))



Ответ отправлен: 02.12.2002, 22:25
Отправитель: Switcher


 Вопрос № 403

Дарова!
ВОт есть Visual C++ Buldier C++ , но это же среды разработки? А С++ получается идёт как отдельный язык и на него вроде какой то стандарт есть да?



Вопрос отправлен: 29.11.2002, 18:47
Отправитель: Пупс

[Следующий вопрос >>] [Список вопросов]

Отвечает wiggler

Добрый день, Пупс!
Да, именно так.
Среды разработки Visual C++ и т.п. - это все-лишь "notepad.exe" с расширенными возможностями. Их можно использовать и для "программирования", например на ассемблере :-). Главное правильно настроить.
Что касается стандарта, то это 700 станичная книга, и по-хорошему продается комитетом ANSI за неплохие деньги. Но есть и в электронном виде ;-).


Ответ отправлен: 29.11.2002, 19:00
Отправитель: wiggler


Отвечает vitya

Доброе время суток, Пупс!
Именно так оно и есть:
Стандарт:ISO/IEC 14882

Ответ отправлен: 01.12.2002, 10:38
Отправитель: vitya


Отвечает Gibbel

Добрый день, Пупс!
Стандарт то есть... Но на него все "кладут"...;-)

Ответ отправлен: 29.11.2002, 18:53
Отправитель: Gibbel


Отвечает Jadd

Добрый день, Пупс!
Гы. Да. Но все эти среды разработки облегчают тебе задачу создания твоих супер-пупер-мега-кул программ, иначе нам пришлось бы все делать как-то через задницу. Например, пришлось бы набирать все в текстовом редакторе и компилить из-под коммандной строки используя дикое колличество диких ключей-параметров (например, как в Unix или различных sdk) и тп, или, что еще круче, писать в машинных кодах. :)
Стандарт один - ANSII. Есть разные либы к С++, но стандарт изначально один.

Ответ отправлен: 30.11.2002, 01:50
Отправитель: Jadd



Форма отправки вопроса

Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

© 2002 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (39)
C / C++ (29)
Perl (7)
Delphi (18)
Pascal (23)
Basic / VBA (9)
Java / JavaScript (14)
PHP (8)
MySQL / MSSQL (8)
Пользователю
Windows 95/98/Me (37)
Windows NT/2000/XP (24)
"Железо" (28)
Поиск информации (16)
Администратору
Windows NT/2000/XP (13)
Linux / Unix (17)
Юристу
Гражданское право (9)
Семейное право (3)
Трудовое право (5)
КоАП (3)

Отправить вопрос всем экспертам выбранной рассылки.




Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное