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

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


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

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

Выпуск № 584
от 16.11.2006, 16:05

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


Вопрос № 62087: Здравствуйте. Компилятор и линковщик C++ из Microsoft Visual Studio 2005 Объявляю некоторый класс в файле TTestClass.h Реализовываю класс в файле TTestClass.cpp (Пример показан в приложении). Линковщик всегда выдает ошибки типа: unres...
Вопрос № 62094: Доброго времени суток уважаемые эксперты. Нужно удалить все комментарии из файлов и записать данные открытия,закратия файла в отдельный файл. Допустим символ="//" , а как быть дальше?? Как дойти до конца строки и удалить эту строку ??...
Вопрос № 62162: Здравствуйте, уважаемые эксперты. Мне необходимо написать многопоточное приложение. Для создания нового потока использую функцию _beginthread(), но при компиляции выдает ошибку "_beginthread : undeclared identifier", хотя заголовочные файлы...
Вопрос № 62182: Здравствуйте, уважаемые эксперты! Посоветуйте, пожалуйста, литературу по следующей проблеме. Задача стоит: сделать простенькую платку со светодиодами, которая би управлялась через com или usb(моргание диодов). Может, кто-то сталкивался? Заранее спаси...

Вопрос № 62.087
Здравствуйте.
Компилятор и линковщик C++ из Microsoft Visual Studio 2005
Объявляю некоторый класс в файле TTestClass.h
Реализовываю класс в файле TTestClass.cpp (Пример показан в приложении).
Линковщик всегда выдает ошибки типа: unresolved LNK...(не находит реализации данных функций)
Я пробовал изменять заголовки функций и некоторыми другими способами, но тип ошибки не менялся.
Как это исправить?
P.S. Если все функции реализовывать сразу при их объявлении, то все прекрасно работает.

Приложение:

Отправлен: 10.11.2006, 15:56
Вопрос задал: Pranovich Ivan Vladimirovich (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Хватов Сергей
Здравствуйте, Pranovich Ivan Vladimirovich!

Вы пропустили inline

Я не знаю, возможны ли вообще не-inline методы для template классов - нигде не нашёл ни запрета, ни примера реализации, но даже если они возможны, то надо писать отдельные реализации для всех используемых T

Приложение:

Ответ отправил: Хватов Сергей (статус: 8-ой класс)
Ответ отправлен: 10.11.2006, 16:25
Оценка за ответ: 5

Отвечает: Melamed
Здравствуйте, Pranovich Ivan Vladimirovich!
Я рекомендую реализацию шаблонного класса делать в h файле. Это связано с тем, что фактически компилятор для каждого типа, указанного в шаблоне в угловых скобках созд&# 1072;ет свой собственный класс, например, если в вашем проекте объявлены типы

typedef <int> TTest IntTest;

и
typedef <char> TTest CharTest;

то компилятор создаст два класса для целых чисел и символов, и их коды будут находится в разных местах кодового сегмента программы.

Это является обратная сторона применения шаблонов.
Ответ отправил: Melamed (статус: 7-ой класс)
Ответ отправлен: 10.11.2006, 17:34
Оценка за ответ: 5


Вопрос № 62.094
Доброго времени суток уважаемые эксперты. Нужно удалить все комментарии из файлов и записать данные открытия,закратия файла в отдельный файл. Допустим символ="//" , а как быть дальше?? Как дойти до конца строки и удалить эту строку ??

Приложение:

Отправлен: 10.11.2006, 17:57
Вопрос задал: Respect (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Sling
Здравствуйте, Respect!
Всё достаточно просто, причём решить можно эту проблему как минимум двумя способами.
Первый (см код в приложении) состоит в том, что считываем из исходного файла по одному символу и тут же записываем этот символ в лог. Если встречаем "//", то дальше пока не встретим символ с кодом 10 (признак конца строки), ничего в лог не пишем. Это по сути и всё.

Второй метод - читать файл построчно и использовать функции для работы со строками (поиск, обрезание :) ). К сожалению, я их не помню, а поискать в справке вы их можете с тем же успехом, что и я.

PS: В коде я работаю с файлами, использую возможности С++, а не С, что и вам рекомендую - это действительно удобно.

Приложение:

---------
The fear of blood tends to create fear for the flesh

Ответ отправил: Sling (статус: 3-ий класс)
Ответ отправлен: 11.11.2006, 02:35

Отвечает: dentist
Здравствуйте, Respect!
файл читается построчно (fgets()).
строка проверяется на наличие признака комментария.
например функцией strstr().
тупо обрезаем строку и пишем в файл.
приблезительно это выглядит как в приложении...

Приложение:

---------
"Software is like sex, it's better then it's free" (c) Linus Torvalds

Ответ отправил: dentist (статус: 6-ой класс)
Ответ отправлен: 11.11.2006, 13:32


Вопрос № 62.162
Здравствуйте, уважаемые эксперты. Мне необходимо написать многопоточное приложение. Для создания нового потока использую функцию _beginthread(), но при компиляции выдает ошибку "_beginthread : undeclared identifier", хотя заголовочные файлы windows.h и process.h я подключаю. Не могу понять, в чем дело.
Отправлен: 11.11.2006, 10:16
Вопрос задал: Говорищев Максим Александрович (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Mech@nic
Здравствуйте, Говорищев Максим Александрович!

Хотя это и не совсем решает Вашу проблему, попробуйте использовать CreateThread
Ответ отправил: Mech@nic (статус: 1-ый класс)
Ответ отправлен: 11.11.2006, 11:03

Отвечает: dentist
Здравствуйте, Говорищев Максим Александрович!
если пишете под винду то используйте CreateThread() и ExitTherad()
если под *nix то fork() вам в руки ;)
---------
"Software is like sex, it's better then it's free" (c) Linus Torvalds
Ответ отправил: dentist (статус: 6-ой класс)
Ответ отправлен: 11.11.2006, 13:43


Вопрос № 62.182
Здравствуйте, уважаемые эксперты! Посоветуйте, пожалуйста, литературу по следующей проблеме. Задача стоит: сделать простенькую платку со светодиодами, которая би управлялась через com или usb(моргание диодов). Может, кто-то сталкивался? Заранее спасибо!
Отправлен: 11.11.2006, 14:32
Вопрос задал: Андрющенко Вячеслав Васильевич (статус: 1-ый класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Хватов Сергей
Здравствуйте, Андрющенко Вячеслав Васильевич!

Ваш вопрос не имеет отношения к C/C++ или другим языкам программирования.

Но если вы хотите, чтобы плата была простенькая, то ее надо подключать либо к к порту lpt, либо к i2c (если вы его у себя найдёте, хотя он на самом деле обычно есть и возможно не один)

Еще некоторые производители материнок ставят на них линейки светодиодов (MSI очень любит такое), которые управляются простой записью по соответствующему адресу i/o. Правда на живой системе это тоже не слишком просто.
Ответ отправил: Хватов Сергей (статус: 8-ой класс)
Ответ отправлен: 11.11.2006, 15:28

Отвечает: ADSota
Здравствуйте, Андрющенко Вячеслав Васильевич!

Берешь диод, припаиваешь к разъему порта: один конец к среднему контакту на широкой стороне (в зависимости от размера разьема это будет 7-й или 5-й PIN).
Второй конец припаиваешь к контакту номер 4.

Теперь с этим диодом можно работать из Си (адреса для COM1):
Поджечь светодоид - outportb(0x3f8+4,inportb(0x3f8+4)&0xc0);
погасить - outportb(0x3f8+4,inportb(0x3f8+4)|3);

Прочитать советую из Techhelp следующие "главы": "cables & pinouts" "serial ports".
---------
Открыть глаза навстречу солнцу
Ответ отправил: ADSota (статус: Специалист)
Ответ отправлен: 13.11.2006, 15:19
Оценка за ответ: 5


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

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

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

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

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


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


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.37 от 04.10.2006
Яндекс Rambler's Top100

В избранное