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

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


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

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 149
от 13.07.2005, 15:20

Администратор:Калашников О.А.
В номере:Вопросов: 4, Ответов: 7
В рассылке:Подписчиков: 180, Экспертов: 19


Вопрос № 23144: Доброе время суток! Помните меня? Я задвал вопрос по теме какую книгу выбрать... Так вот книгу пока я не купил :( но зато мне бесплатно попала книга "C++ Для чайников" :). Так вот так как мне говорили сначала учи ANSI язык а не сре...
Вопрос № 23169: Драсте. Я создал MFC приложение, которое создаёт иконку в трее (см. код). Подскажите, плиз, как сделать, чтобы при клике по этой иконке появлялось меню с какими-либо командами....
Вопрос № 23183: Здраствуйте Эксперты. В MSDN в примерах есть константы, но компилер на них ругается, мол, undeclared. Где взять их значения?Например из функции DlgDirList(hwnd,lpszCurDir,IDL_FILES,IDS_PATHTOFILL,0); константы IDL_FILES,IDS_PATHTOFILL, а также др...
Вопрос № 23219: Здрысть, уважаемые эксперты! Есть здоровенный проект. Под 2003 студией он компилится и линкуется нормально. Поставил Intel C++ Compiler 9.0. Пытаюсь что-то делать с ним, вылетает куча ошибок, типа: decksource.obj : error LNK2001: unresol...

Вопрос № 23.144
Доброе время суток!
Помните меня? Я задвал вопрос по теме какую книгу выбрать...
Так вот книгу пока я не купил :( но зато мне бесплатно попала книга "C++ Для чайников" :). Так вот так как мне говорили сначала учи ANSI язык а не среду разрабоктьи я подумал и думаю ну давай попробую. ну нестал открывать BC++ или VC++ а открыл редактор Code Blocks (Просто редактор) и поставил компилятор GNU C++. В книге про него и пишут). Но немогу скомпилировать приведенный в книге код :( Ругается что функции cout и cin нету она не объявлена и используется впервые. Что делать? Других ошибок нету. Меня смущает что файл компилятора называется mingw32-c++.exe но я поменял на g++.exe (там был) ничего не произошло. Объясните в чем моя ошибка. А то я готов комп выкинуть из окна или навсегда уйти в Delphi :(

Приложение:

Отправлен: 06.07.2005, 23:22
Вопрос задал: Delphin (статус: 7-ой класс)
Всего ответов отправлено: 2

Отвечает: DSota
Здравствуйте, Delphin!

Переименовал - это не ошибка... Странно, что на первую строчку не выдало ошибку. А учиться в среде легче... По крайней мере - там примеры программ в помощи есть.

Приложение:

---------
Открыть глаза навстречу солнцу.

Ответ отправил: DSota (статус: Практикант)
Отправлен: 07.07.2005, 08:46
Оценка за ответ: 5
Комментарий оценки:
Ага помогло. :) Странно вроде такая ошибка неприметная...

Отвечает: yatagan
Здравствуйте, Delphin!
прикол в том, что существует две библиотеки ввода-вывода: более старая (#include <iostream.h>), и новая, определенная стандартом ANSI/ISO для C++ (#include <iostream>). в новой библиотеке, которой ты пользуешься, обьекты cin и cout определены в пространстве имен std, поэтому у тебя три способа решить проблему:

1. вместо cin и cout, писать std.cin и std.cout соответственно
2. после "#include <iostream>" написать "using namespace std;"
3. пользоваться старой библиотекой "#include <iostream.h>"
---------
Україна понад усе!
Ответ отправил: yatagan (статус: 2-ой класс)
Отправлен: 07.07.2005, 10:15
Оценка за ответ: 5
Комментарий оценки:
Ну а в книге этого не написано :(
Спасибо ! У меня появисля стимул учить дальше!


Вопрос № 23.169
Драсте. Я создал MFC приложение, которое создаёт иконку в трее (см. код). Подскажите, плиз, как сделать, чтобы при клике по этой иконке появлялось меню с какими-либо командами.

Приложение:

Отправлен: 07.07.2005, 12:39
Вопрос задал: SerJ1 (статус: Посетитель)
Всего ответов отправлено: 1

Отвечает: Voituk Alexander
Здравствуйте, SerJ1!
Для начала создаешь всплывающее меню

HMENU mnu = CreatePopupMenu();
AppendMenu(mnu,MF_STRING,102,"About...");
AppendMenu(mnu,MF_SEPARATOR,0,"");
AppendMenu(mnu,MF_STRING,101,"Calc");
AppendMenu(mnu,MF_SEPARATOR,0,"");
AppendMenu(mnu,MF_STRING,100,"Exit");
SetMenu(MainWnd,mnu);

А затем в обработчике событий ловишь правый шлепок мыша и обрабатываешь команды меню
LRESULT CALLBACK MainWndProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{ switch (uMsg)
{
case WM_COMMAND :
if(wParam == 102)
AboutWnd();
if(wParam == 100)
PostQuitMessage(0);
if(wParam == 101)
WinExec("Calc.exe",SW_SHOW);
break;

case MYWM_NOTIFY:
if(lParam==WM_LBUTTONDBLCLK) // левый даблклик на значке - завершаем
PostQuitMessage(0);
if(lParam==WM_RBUTTONDOWN) // Правый щелчок на значке - завершаем
{
POINT pt;
GetCursorPos(&pt);
TrackPopupMenu(mnu,TPM_RIGHTALIGN,pt.x,pt.y,0,MainWnd,NULL);
}
break;
}
return 0;
}
Ответ отправил: Voituk Alexander (статус: 9-ый класс)
Отправлен: 07.07.2005, 14:11


Вопрос № 23.183
Здраствуйте Эксперты.
В MSDN в примерах есть константы, но компилер на них ругается, мол, undeclared. Где взять их значения?Например из функции DlgDirList(hwnd,lpszCurDir,IDL_FILES,IDS_PATHTOFILL,0); константы IDL_FILES,IDS_PATHTOFILL, а также другие DLL_DRIVES, DLL_ARCHIVE...(SendMessage)
Отправлен: 07.07.2005, 19:48
Вопрос задал: korsar (статус: Посетитель)
Всего ответов отправлено: 2

Отвечает: Jadd
Здравствуйте, korsar!
Файл windows.h заинклюдил? Какая среда разработки?
---------
Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Студент)
Отправлен: 07.07.2005, 21:40

Отвечает: DSota
Здравствуйте, korsar!

В MSDN и др. обычно указывается библиотека, в которой лежат эти константы...

И еще есть способ (на любителя) - запустить поиск файлов в директории "include" своего сишника... Найти все файлы, в которых есть нужные константы... И включить найболее подходящий из них.


---------
Открыть глаза навстречу солнцу.
Ответ отправил: DSota (статус: Практикант)
Отправлен: 08.07.2005, 10:59


Вопрос № 23.219
Здрысть, уважаемые эксперты!
Есть здоровенный проект. Под 2003 студией он компилится и линкуется нормально. Поставил Intel C++ Compiler 9.0. Пытаюсь что-то делать с ним, вылетает куча ошибок, типа:

decksource.obj : error LNK2001: unresolved external symbol "public: virtual __thiscall ecl::XMLDeckReader::Exception::~Exception(void)" (??1Exception@XMLDeckReader@ecl@@UAE@XZ)

rtimeloader.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall ngrs::SimTime::SimTime(class ngrs::SimTime const &)" (__imp_??0SimTime@ngrs@@QAE@ABV01@@Z) referenced in function "protected: void __thiscall std::vector<class ngrs::SimTime,class std::allocator<class ngrs::SimTime> >::_Insert_n(class std::vector<class ngrs::SimTime,class std::allocator<class ngrs::SimTime> >::iterator,unsigned int,class ngrs::SimTime const &)" (?_Insert_n@?$vector@VSimTime@ngrs@@V?$allocator@VSimTime@ngrs@@@std@@@std@@IAEXViterator@12@IABVSimTime@ngrs@@@Z)

Как с этим можно бороться?
Отправлен: 08.07.2005, 11:58
Вопрос задал: Дрищев Василий (статус: Посетитель)
Всего ответов отправлено: 2

Отвечает: Jadd
Здравствуйте, Дрищев Василий!
Ну все просто. Компиллер не знает где брать либы...тебе нужно указать путь, где лежать lib файлы, из которых вызываются все эти функции. Вообще это порочная практика переносить с компиллера на компиллер вне зависимости от целей.
---------
Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Студент)
Отправлен: 08.07.2005, 13:12
Оценка за ответ: 5
Комментарий оценки:
Хмммм, это собс-но понятно. А как именно пофиксить и почему возникают такие различия?

Отвечает: Tsechoev Bagaudin
Здравствуйте, Дрищев Василий!
Наверное такого разнообразия проблем, как при сборке и переносе программ на С++ или С, нет ни у одного языка. Единственное что могу посоветовать, постарайся в дальнейшем этого не делать, а если есть какая-то автоматизация линковки на интеловском компилере, то пропиши пути к библиотекам и заголовочным файлам в нем. Если такого нет, то придется писать самому make-файл!!!
Удачи!
---------
Есть только одно зло - невежество, и только одно благо - знания
Ответ отправил: Tsechoev Bagaudin (статус: 7-ой класс)
Отправлен: 09.07.2005, 17:34
Оценка за ответ: 4
Комментарий оценки:
Спасибо за ответ!


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

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

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.

Яндекс


Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.cplus
Отписаться
Вспомнить пароль

В избранное