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

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


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

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

Выпуск № 766
от 11.06.2007, 09:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 477, Экспертов: 59
В номере:Вопросов: 6, Ответов: 10


Вопрос № 90071: Добрый день уважаемые эксперты. Интересует следующий вопрос - как организовать работу с локальной сетью (поиск файлов в сети и т.д.) и насколько это реально сделать только средствами WinAPI без использования дополнительных библиотек. Подскажите пожал...
Вопрос № 90089: Здравствуйте, динамическую библиотеку «Разреженные матрицы». Просто класс работает нормально, но когда его подключаешь с помощью библиотеки, метод вывода на экран не работаtт, т.е. при запуске компилятор сразу же выдает : [Linker Error] Unresolved ex...
Вопрос № 90145: Здраствуйте! Как в MVisualStudio.NET подключать библиотеки : WinSock32.dll ?...
Вопрос № 90174: Вопрос вероятно простой. Есть приложение созданное MFC в VC как SDI, так вот нужно чтобы нельзя было изменить размеры окна. Я подозреваю, что нужно в CMainFrame в PreCreateWindow со стилем помутить, а что именно не знаю. Возможно, конечно я не прав. ...
Вопрос № 90202: здравствуйте. такая задача, надо реализовать в си билдере 6. есть сканированые картинки купюр, номиналом одна и две гривни. на форму в имэдж загружается одна из двух картинок банкнот, потом нажимая на кнопку, происходит сравнение и она выдает,как...
Вопрос № 90224: Доброго времени суток уважаемые эксперты! Я новичёк в С++ (использую Borland C++ Builder 6). Помогите пожалуйста; накупил несколько книг, читал всё, от корки до корки, в большинстве конечно, мало что понял, но ответа на вопрос не нашёл. Созд...

Вопрос № 90.071
Добрый день уважаемые эксперты. Интересует следующий вопрос - как организовать работу с локальной сетью (поиск файлов в сети и т.д.) и насколько это реально сделать только средствами WinAPI без использования дополнительных библиотек. Подскажите пожалуйста с чего лучше всего начать изучение этого вопроса. Среда разработки - MS Visual Studio, язык - С++. Заранее всем спасибо.
Отправлен: 05.06.2007, 09:37
Вопрос задал: Mastercad (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Qazzy
Здравствуйте, Mastercad!
Здравствуйте, Mastercad!
Для работы с сетью как правило юзают Netapi32.lib (которую надо подключить к проекту в разделе Link свойств проекта). В ней достаточно много функций для работы с сетью. Рекомендую побольше пользоваться MSDN и поиском в нэте типа "как сделать то-то" и т.д. . Все исходники лучше всего отрабатывать в Visual Studio 6. Вот пример кода из MSDN, который покажет кто шарится в твоей или чужой машине (если передашь имя сетевой тачки в качестве параметра этой проге):

Приложение:

Ответ отправил: Qazzy (статус: 1-ый класс)
Ответ отправлен: 05.06.2007, 14:00


Вопрос № 90.089
Здравствуйте, динамическую библиотеку «Разреженные матрицы». Просто класс работает нормально, но когда его подключаешь с помощью библиотеки, метод вывода на экран не работаtт, т.е. при запуске компилятор сразу же выдает : [Linker Error] Unresolved external 'operator <<(_STL::basic_ostream<char, _STL::char_traits<char> >&, const TSparseMatrix&)' referenced from C:\DOCUMENTS AND SETTINGS\SERVICE\РАБОЧИЙ СТОЛ\ПРОВЕРКА\PROBA.OBJ, а когда его не используешь он жалуется на деструктор. Помогите пожалуйста. Заранее спасибо.

Приложение:

Отправлен: 05.06.2007, 11:14
Вопрос задала: Veranda86 (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Ilkras
Здравствуйте, Veranda86!
Возможно, что библиотека построена с использованием STL версия которого несколько отличается от STL поставляемого с вашей средой разработки. Например STP MSVC (Microsoft) отличается от стандартного.
Ответ отправил: Ilkras (статус: Студент)
Ответ отправлен: 05.06.2007, 15:48

Отвечает: Терсков Сергей
Здравствуйте, Veranda86!
В вашей программе используется устаревшее включение #include <iostream.h>, возможно это и является причиной невозможности перегрузки cout. Можно, например, использовать метод самого класса для вывода например print(). А насчет деструктора ситуация следущая. Память везде выделяется по разному:

m=new Element;
и
m=new Element[M1.r];

, но удаляете вы ее только как

if (m) delete m;

Но оператор delete подходит для удаления одиночных объектов, но не массивов. Здесь необходим оператор delete[]. Возможно что дело именно в этом.
Ответ отправил: Терсков Сергей (статус: Студент)
Ответ отправлен: 06.06.2007, 02:44


Вопрос № 90.145
Здраствуйте!

Как в MVisualStudio.NET подключать библиотеки :
WinSock32.dll
?
Отправлен: 05.06.2007, 16:22
Вопрос задал: James (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Ilkras
Здравствуйте, James !
В свойствах проекта в разделе линковки надо добавить имя WinSock32.lib, тогда построенная аппликация будет пользоваться WinSock32.dll.
Ответ отправил: Ilkras (статус: Студент)
Ответ отправлен: 05.06.2007, 17:30
Оценка за ответ: 5

Отвечает: _Solo_
Здравствуйте, James !

Вообще-то в С++ существует несколько способов подключения динамичских библиотек. Один из них- указание соответствующего *.lib- файла через командную строку компилятора (или просто добавление его в проект через "Add"->"Existing Item"). Второй вариант- в каком-нибудь h-нике, который видят все файлы проекта (stdafx.h пойдёт) написать #pragma comment(lib,"имя_файла.lib"). Так, на мой взгляд, практичнее. Не забудьте где-то там же сделать #include соответствующего h-файла. ;-)

Кроме того, библиотеку можно подключать на этапе выполнения программы через функцию LoadLibrary. Однако, на мой взгляд, этот способ оправдывает себя только в случае, когда нужно сделать что-то вроде интерфейса плагинов.
Ответ отправил: _Solo_ (статус: 1-ый класс)
Ответ отправлен: 06.06.2007, 18:34
Оценка за ответ: 5


Вопрос № 90.174
Вопрос вероятно простой. Есть приложение созданное MFC в VC как SDI, так вот нужно чтобы нельзя было изменить размеры окна. Я подозреваю, что нужно в CMainFrame в PreCreateWindow со стилем помутить, а что именно не знаю. Возможно, конечно я не прав. Рассмотрю любые предложения...
Отправлен: 05.06.2007, 19:36
Вопрос задал: Anarchist (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Olegzp
Здравствуйте, Anarchist!
Вот фрагмент из моей программы
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs

cs.cx = 400;
cs.cy = 400; // выставить размеры окна

cs.style &= ~WS_SIZEBOX; // запрет на изменение размеров окна
return TRUE;
}
Ответ отправил: Olegzp (статус: 2-ой класс)
Ответ отправлен: 05.06.2007, 20:41

Отвечает: Jadd
Здравствуйте, Anarchist!
Ставим обработчик на WM_SIZING и всякий раз восстанавливаем размеры.

Удачи.
---------
Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Профессионал)
Адрес: Санкт-Петербург
WWW: http://www.sport-diary.ru
----
Ответ отправлен: 05.06.2007, 22:03

Отвечает: _Solo_
Здравствуйте, Anarchist!

Вы почти что правильно подозревали. Мутить со стилем нужно в функции OnCreate, когда окно уже создано- иначе ничего не получится. Необходимо СРАЗУ ПОСЛЕ

if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1;

вставить строчку

ModifyStyle(WS_THICKFRAME,0);

Если поставить эту строчку дальше (после создания тулбара или строки состояния, то могут получиться неожиданные эффекты вроде назависимо изменяющей свой размер строки состояния).
Ответ отправил: _Solo_ (статус: 1-ый класс)
Ответ отправлен: 06.06.2007, 18:46


Вопрос № 90.202
здравствуйте. такая задача, надо реализовать в си билдере 6.
есть сканированые картинки купюр, номиналом одна и две гривни. на форму в имэдж загружается одна из двух картинок банкнот, потом нажимая на кнопку, происходит сравнение и она выдает,какой у нас номинал.
зы. на каждой из картинок внизу нарисована цифра-вот эту область с цифрой вырезаем, и по ней сравнение производим
помогите!
Отправлен: 06.06.2007, 00:01
Вопрос задал: просто (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Qazzy
Здравствуйте, просто!
Задача почти нереальная :). Можно так: если цифры 1 и 2 резко выделяются на фоне, то можно в цикле считать попиксельно цвета каждого пикселя. Допустим, цифры темные, а фон светлый. Сумма "темных" пикселов будет площадью цифры. Допустим определо опытным путем отношение площади цифры к площади области, где эта цифра находится (это чтобы не зависеть от масштаба). Допустим, у 1 - это ~0,12, а у 2 - ~0,23. Вот эту самую площадь мы и будем искать, суммируя число "темных" и "светлых" пикселов. Т.е. считывать изображение надо попиксельно и у каждого считанного пикселя определять цвет (он как правило в шестнадцатеричной форме). Заранее надо определить диапазоны "светлых" и "темных" пикселов, а по хорошему надо отслеживать "перепады" цветов - это если всего несколько цветов (а если это на сложном фоне - то вообще засада). Конечно же, в платежных системах используют более простые, быстрые и точные механизмы определения номинала - и многое зависит от валюты. Поэтому советую разобрать пару банкоматов или мультикасс и слить оттуда код идентификации купюр :). А потом не забыть написать об этом на этом сайте. :)
Ответ отправил: Qazzy (статус: 1-ый класс)
Ответ отправлен: 06.06.2007, 13:40


Вопрос № 90.224
Доброго времени суток уважаемые эксперты!

Я новичёк в С++ (использую Borland C++ Builder 6). Помогите пожалуйста; накупил несколько книг, читал всё, от корки до корки, в большинстве конечно, мало что понял, но ответа на вопрос не нашёл. Создал форму, там есть main menu, в одном из обработчиков items, допустим <Импортировать>, импортируется текстовый файл данных, создаю объекты своего класса Symbol, для отображения на экране, количество объектов не известно до импорта. Затем, мне, в процессе работы программы, нужно менять некоторые свойства этих графических объектов, но тут то и возникает проблема, объекты не доступны в других обработчиках. Как мне быть? Это моя первая программа, помогите пожалуйста. Слышал, что можно использовать TObjectList, но по хелпу вообще ничего не понятно, есть ли у вас какие-нибудь примеры с использованием TObjectList. Зараннее спасибо.
Отправлен: 06.06.2007, 07:28
Вопрос задал: Токпаев Бахтияр Бекмухаметович (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Qazzy
Здравствуйте, Токпаев Бахтияр Бекмухаметович!
Полностью согласен с предыдущим ответом.
В общих словах классический способ работы в таком случае: 1) объявляем глобальную переменную (указатель типа char), 2) в каком-нибудь обработчике выясняем сколько будем заносить в неё "текста", выделяем столько памяти, сколько надо и считываем текст в блок памяти, на который указатель ссылается (в случае успешного выделения памяти) 3) далее обращение к глобальной переменной возможно из любой функции программы. Вообще хотелось бы увидеть саму задачу и текст написанной программы, а потом можно уже будет сказать, что не так, пояснить все моменты. А так, возникшая у вас проблема скорее всего связана с областью видимости переменных.
Ответ отправил: Qazzy (статус: 1-ый класс)
Ответ отправлен: 06.06.2007, 13:14


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

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

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

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

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


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


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.52 от 02.05.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное