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

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


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

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

Выпуск № 840
от 04.09.2007, 23:35

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


Вопрос № 100180: Доброе время суток эксперты! Недавно заметил что моя программа скомпилированна с RunTime Packages. Убрал галочку и почему-то стали вылезать ошибки. (В приложении) Скажите как побороть? BDS 2006....
Вопрос № 100213: Привет всем! Пишу программу удаленного администрирования научился пользоваться winsock, вопрос как в таких программах реализуется такая вещь как получение дерева каталогов клиентом с сервера?...
Вопрос № 100257: Добрых Вам суток господа эксперты!!!! Помогите разобраться в следуюющем вопросе, в общем дело в разных версиях VC++, компилирую Screen Saver под v.7 (2003) - Нормальйок, а под VC++ v.8 (2005)-ругается: Error 1 error LNK2019: unresolved extern...
Вопрос № 100277: Привет всем! Как на c++ заставить приложение растягиваться на весь экран? Причём чтобы на мониторах с разным разрешением? При включении свойства fullscreen на других мониторах не работает......

Вопрос № 100.180
Доброе время суток эксперты!
Недавно заметил что моя программа скомпилированна с RunTime Packages. Убрал галочку и почему-то стали вылезать ошибки. (В приложении) Скажите как побороть?
BDS 2006.

Приложение:

Отправлен: 29.08.2007, 23:52
Вопрос задал: Уваров Андрей Александрович (статус: Студент)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Виктор Пырлик
Здравствуйте, Уваров Андрей Александрович!

Поставте галочку - Generate Underscores и Autodependency Information.

---------
Если ничего не помогло - надо читать инструкцию
Ответ отправил: Виктор Пырлик (статус: Студент)
Ответ отправлен: 30.08.2007, 15:53


Вопрос № 100.213
Привет всем!
Пишу программу удаленного администрирования научился пользоваться winsock, вопрос как в таких программах реализуется такая вещь как получение дерева каталогов клиентом с сервера?
Отправлен: 30.08.2007, 09:57
Вопрос задал: Tatarin (статус: 2-ой класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Aristos
Здравствуйте, Tatarin!

Список файлов (и директорий, которая тоже является файлом) можно передать с сервера на клиент, как любой другой ресурс. Взаимодействие можно построить, например, по следующей схеме:
Клиент запрашивает список файлов для директории. (Передает родительскую директорию, маску поиска, атрибуты искомых файлов).
Сервер выполняет поиск и возвращает список файлов (имя, путь, атрибуты, иконка).
Клиент отображает ветку в дереве.
Далее, если необходимо повторяется для директорий.
Ответ отправил: Aristos (статус: 5-ый класс)
Ответ отправлен: 30.08.2007, 11:13

Отвечает: Баранов Владимир aka C4tnt
Здравствуйте, Tatarin!

Могу предложить весьма компактную схему для передчи каталогов и подкаталогов по единственному запросу (из минусов - резервированные комбинации байт)

1. Резервируем комбинации:
SEPARATOR 0x00
INNER_STEP 0x01
OUTER_STEP 0x02

Шифруем дерево таким образом:

Находим первую папку (или файл)
если это папка - заходим в неё, в файл пишем имя папки и после него INNER_STEP. Продолжаем поиск.
если это файл - ставим SEPARATOR и пишем имя файла
если папка или файл были последними - пишем OUTER_STEP и выходим из текущей папки.

Получим что-то вроде:
C: 0x01 WINNT 0x01 SYSTEM32 0x01 msimg.dll 0x02 0x02 GAMES 0x01 и так далее. (0x01 это символ с кодом 1, а пробелы добавлены для читаемости.)

Расшифровка на стороне клиента выглядит так:

Читаем текст до первого спец. знака и помещаем в корень дерева.
Если знак - 0x00 то мы прочитали название файла. Таким же образом читаем дальше.
Если знак - 0x01 то мы прочитали название папки. В этом месте вызываем расшифровщик рекурсивно и он строит поддерево начиная с этого места.
Если знак - 0x02 то функция завершает свою работу.

Особый случай - сразу при вызове функция читает 0x02. В этом случае нужно вернуть пустую ветку дерева.

Ещё одна подсказка: можете реализовать FTP протокол и качать файлы с сервера любым доступным FTP клиентом.
---------
Теперь к нашим ответам осталось лишь найти вопросы
Ответ отправил: Баранов Владимир aka C4tnt (статус: 4-ый класс)
Ответ отправлен: 30.08.2007, 19:33


Вопрос № 100.257
Добрых Вам суток господа эксперты!!!!
Помогите разобраться в следуюющем вопросе, в общем дело в разных версиях VC++, компилирую Screen Saver под v.7 (2003) - Нормальйок, а под VC++ v.8 (2005)-ругается:
Error 1 error LNK2019: unresolved external symbol _ScreenSaverProc@16 referenced in function _RealScreenSaverProc@16 scrnsave.lib

Error 2 error LNK2019: unresolved external symbol __imp__InitCommonControlsEx@4 referenced in function _WinMainN@16 scrnsave.lib
И само собой :
Error 3 fatal error LNK1120: 2 unresolved externals C:AlexVC++ ProjectsssPhotoAlbumDebugssPhotoAlbum.exe
подозрение на параметры................
------------
Заранее благодарен Alexiod
или может не заморчиваться и поставить v.7 и всёёёёёёёёёёёёё!!!!!!!!!!!!
Отправлен: 30.08.2007, 15:48
Вопрос задал: Новак Александер Васильевич (статус: 1-ый класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: kool
Здравствуйте, Новак Александер Васильевич!
Скорее всего не может найти библиотеку (*.dll), в кот
содер-ся код ф-ции _ScreenSaverProc@16
Удачи!

---------
I am.
Ответ отправил: kool (статус: Практикант)
Ответ отправлен: 30.08.2007, 20:57

Отвечает: Maxim V.G.
Здравствуйте, Новак Александер Васильевич!
Попробуйте в свойствах проекта подключить scrnsave.lib, должно помоч.
---------
Жить вредно - от неё умирают
Ответ отправил: Maxim V.G. (статус: 4-ый класс)
Ответ отправлен: 31.08.2007, 14:23


Вопрос № 100.277
Привет всем!
Как на c++ заставить приложение растягиваться на весь экран? Причём чтобы на мониторах с разным разрешением? При включении свойства fullscreen на других мониторах не работает...
Отправлен: 30.08.2007, 20:06
Вопрос задал: Попов Максим алексеевич (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Баранов Владимир aka C4tnt
Здравствуйте, Попов Максим алексеевич!

ShowWindow(hWnd, SW_MAXIMIZE); - должна развернуть окно на весь экран независимо от его желания. При этом окно будет "максимизированно" и его можно будет свернуть до прежнего состояния.

SetWindowPos(hWnd,NULL,0,0,ScreenWidth,ScreenHeigth,SWP_NOZORDER); - Установит размеры и положение окна так, чтобы оно в нормальном состоянии занимало весь экран.
ScreenWidth и ScreenHeight - высота и ширина экрана соответственно. Их можно получить с
помощью следующего кода:

RECT Rect;
GetWindowRect(GetDesktopWindow(),&Rect);
ScreenWidth = Rect.right;
ScreenHeigth = Rect.bottom;

---------
Теперь к нашим ответам осталось лишь найти вопросы
Ответ отправил: Баранов Владимир aka C4tnt (статус: 4-ый класс)
Ответ отправлен: 30.08.2007, 20:30
Оценка за ответ: 5
Комментарий оценки:
спасибо большое

Отвечает: Лис Иван
Здравствуйте, Попов Максим алексеевич!

Есть такая возможность узнать размеры экрана:
void CMyDlg::Function()
{
int right=GetSystemMetrics(SM_CXSCREEN);
int bottom=GetSystemMetrics(SM_CYSCREEN);
}

А можно узнать размер рабочей области экрана(т.е. экран минус панель задач)
RECT rect;
if(SystemParametersInfo(SPI_GETWORKAREA,0,&rect,0))
{
int x=rect.right;
int y=rect.bottom;
}
else
{
//не удалось получить размер рабочей области
}
Ответ отправил: Лис Иван (статус: 1-ый класс)
Ответ отправлен: 31.08.2007, 00:50

Отвечает: Shurka
Доброго времени. Можно например воспользоваться WINAPI - функцией
SetWindowPlacement
Ответ отправил: Shurka (статус: 2-ой класс)
Ответ отправлен: 31.08.2007, 06:51
Оценка за ответ: 5

Отвечает: Архипов Александр Леонидович
Здравствуйте, Попов Максим алексеевич!
Можно попробовать через свойство формы Align, см. прил. Если надо вернуть, то сначало надо запомнить текущие размеры и положение, а потом вернуть обратно.

Приложение:

Ответ отправил: Архипов Александр Леонидович (статус: 2-ой класс)
Ответ отправлен: 31.08.2007, 11:23


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

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

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

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

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


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


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

В избранное