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

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


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


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

Выпуск № 519
от 31.05.2004, 18:10

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


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

vitya
Статус: Профессиональный
Общий рейтинг: 109.3
[Подробней >>]
bocha
Статус: Доверительный
Общий рейтинг: 149.05
[Подробней >>]
Sedric
Статус: Доверительный
Общий рейтинг: 133.76
[Подробней >>]
 
CrackLab
Статус: Опытный
Общий рейтинг: 140.9
[Подробней >>]
Fess
Статус: Доверительный
Общий рейтинг: 123.3
[Подробней >>]


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

Вопрос № 1649. Уважаемы господа! Вопрос такой. Есть ли возможность создавая оффлайновую версию сайта, запаковать ег... (ответов: 2)
Вопрос № 1650. ПривеТ!! К вопросу 5342: ф-кция ExitProcess находится в таблице импорта(kernel32.dll). Мне надо узна... (ответов: 5)
Вопрос № 1651. Здравствуйте,скажите пожалуйста как понимать(float) в следующем выражении percents[i] = ((float) sc... (ответов: 5)
Вопрос № 1652. ПРивет!! Как сделать чтобы программа работал в фоновым режиме?... (ответов: 3)
Вопрос № 1653. Здравстуйте эксперты, У меня такой вопрос: Кто нибудь пользуется библиотеками расширениями MFC для G... (ответов: 1)
Вопрос № 1654. К вопросу 1652. Мне надо чтобы программа работала как сервис или вирус. ShowWindow не подходит.... (ответов: 3)

Вопросов: 6, ответов: 19


 Вопрос № 1649

Уважаемы господа!
Вопрос такой.
Есть ли возможность создавая оффлайновую версию сайта, запаковать его в базу данных (или в что-нибуль похожее с помощью С++), чтобы не была видна структура сайта.
Спасибо.
Толик



Вопрос отправлен: 27.05.2004, 18:22
Отправитель: Анатолий (branmd@optima.com.ua)

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

Отвечает vitya

Добрый день, Анатолий!
Возможность есть. Пишите. :)

Ответ отправлен: 28.05.2004, 12:42
Отправитель: vitya


Отвечает bocha

Приветствую Вас, Анатолий!
А чем не нравится HTML Help WorkShop(MSDN диск 1)? Компилируешь в один *.chm -файл и , что характерно, никакой структуры.

Ответ отправлен: 28.05.2004, 15:49
Отправитель: bocha


 Вопрос № 1650

ПривеТ!!
К вопросу 5342:
ф-кция ExitProcess находится в таблице импорта(kernel32.dll). Мне надо узнать ее адрес чтобы вызвать при помощи Call:
Call <адрес>.
Так какой же адрес у ExitProces?



Вопрос отправлен: 27.05.2004, 20:11
Отправитель: qh

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

Отвечает bocha

Приветствую Вас, qh!
GetProcAddress(HMODULE hLib, LPCSTR pProcName);

Ответ отправлен: 27.05.2004, 21:30
Отправитель: bocha


Отвечает vitya

Приветствую Вас, qh!
1. линкуй с kernel32.lib
2. LoadLibrary - GetProcAddress к вашим услугам.

Ответ отправлен: 28.05.2004, 12:42
Отправитель: vitya


Отвечает Sedric

Здравствуйте, qh!
В kernel32.dll эта функция находится не в импорте, а в экспорте.Вызывать ее так не стоит.Лучше доверится линкеру.Он соберет все как надо.Просто прикрути нужные хидеры.
Можно сделать так:
invoke LoadLibrary,addr name ;это название длл
mov hInstance,eax
invoke GetProcAddress,hInstance,addr func_name ;здесь будет ExitProcess
mov pT,eax ;это указатель на функцию
call pT


Ответ отправлен: 28.05.2004, 12:47
Отправитель: Sedric


Отвечает CrackLab

Доброе время суток, qh!
Для получения адреса функции воспользуйтесь функцией GetProcAddress

Ответ отправлен: 27.05.2004, 23:23
Отправитель: CrackLab


Отвечает Fess

Приветствую Вас, qh! Слухай, ты в ту рассылку попал? Здесь отродясь не было вопроса № 5342! Я сейчас на 1650 отвечаю. Может ты на Асме пишешь? Но даже тогда тебе не обязательно знать адрес функции, просто помещаешь параметры в стек в обратном направлении (например, сначала третий, затем второй, потом первый), это если у тебя stdcall стоит. Затем стек выравниваешь, а уж потом калом вызываешь. :-) Либы если правильно подключил, всё прокатит. А можно геморроем не страдать, и вызывать через invoke. Ну, а если приспичило адрес узнать, есть GetProcAddress ВинАпишный.


Приложение:

Ответ отправлен: 29.05.2004, 16:50
Отправитель: Fess


 Вопрос № 1651

Здравствуйте,скажите пожалуйста как понимать(float)
в следующем выражении
percents[i] = ((float) scores[i]) / MAX;
C Ув.
Роберт



Вопрос отправлен: 27.05.2004, 21:13
Отправитель: Robert (atlantida_adler@mail.ru)

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

Отвечает bocha

Добрый день, Robert!
Если scores и MAX объявлены как целые, а нужно получить вещественный результат, то производят приведение типов.При делении целых происходит отсечение дробной части. Кстати этот ответ можнобыло получить, открыв ЛЮБУЮ книжку, где описывается синтаксис языка, клчевые слова "типы", "приведение".

Ответ отправлен: 28.05.2004, 15:14
Отправитель: bocha


Отвечает vitya

Добрый день, Robert!
Max i scores[i] являются, видимо, целыми числами. Для того, чтобы получить точный результат - надо привести хотя бы одно из чисел к типу с плавающей запятой.

Ответ отправлен: 28.05.2004, 12:41
Отправитель: vitya


Отвечает Sedric

Приветствую Вас, Robert!
Понимай как есть!%))))
Это приведение типа.scores[i] приводится к типу float.
Правда, корявое приведение.Я бы использовал статик_каст

Ответ отправлен: 28.05.2004, 12:47
Отправитель: Sedric


Отвечает CrackLab

Доброе время суток, Robert!
Очевидно, что percents - переменная типа float, а scores - переменная типа несовместимого с float, тогда компилятор не позволит писать percents[i] = scores[i] / MAX;
Для этого тип scores переводится в этом месте во float, и компилятор не выдаст ошибки.
Т.е. указание типа в скобках перед переменной указывает компилятору к какому типу необходимо привести данную переменную.

Ответ отправлен: 28.05.2004, 00:48
Отправитель: CrackLab


Отвечает Fess

Добрый день, Robert! Это прямое приведение типа. Понимать это надо так: scores[i] теперь имеет тип float. Приемлемо для С, редко для С++. Очень небезопасно. В С++ лучше использовать static_cast(можно использовать везде, где использовал Сишный вариант), dynamic_cast (для приведения типов в иерархии классов, например, привести указатель на базовый класс в указатель на субкласс), const_cast (для работы с идентификаторами volatile и const, установить или снять оные), reinterpret_cast (ну, это, скажем, можно использовать во всех других случаях, например, когда приведение зависит от реализации, часто единственный возможный способ корректного приведения). Думаю, что понятно.


Ответ отправлен: 29.05.2004, 16:56
Отправитель: Fess


 Вопрос № 1652

ПРивет!!
Как сделать чтобы программа работал в фоновым режиме?



Вопрос отправлен: 28.05.2004, 11:50
Отправитель: qh

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

Отвечает bocha

Добрый день, qh!
SowWindow(hWnd, SW_HIDE);

Ответ отправлен: 28.05.2004, 16:17
Отправитель: bocha


Отвечает CrackLab

Приветствую Вас, qh!
Что значит в фоновом ? Вы хотите просто спрятать окно или вы хотите чтобы программа работала как сервис?

Ответ отправлен: 28.05.2004, 18:58
Отправитель: CrackLab


Отвечает vitya

Здравствуйте, qh!
Спрячьте окно. И пусть себе работает.

Ответ отправлен: 28.05.2004, 12:39
Отправитель: vitya


 Вопрос № 1653

Здравстуйте эксперты,
У меня такой вопрос:
Кто нибудь пользуется библиотеками расширениями MFC для GUI? Такими как :
- Dundas Ultimate C++ Toolbox
- BCG Control Bar
- CodeJock
- Prof-UIS
- Stingray 2000
и т.д.
Если кто пользуется, то помогите найти их(вместе с исходниками). Может кто знает название диска и где он продается, или можно линку для скачивания.
Заранее спасибо,
Абрамовский Иван.



Вопрос отправлен: 28.05.2004, 15:58
Отправитель: Абрамовский Иван (abhome@atnet.ru)

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

Отвечает vitya

Доброе время суток, Абрамовский Иван!
Дундас продается на сайте дундаса, а стинграй на сайте rougewave.com. Про остальные не знаю.
Я не поддерживаю нелицензионнос использование компонентов. Stringray поставляется с исходниками.

Ответ отправлен: 29.05.2004, 13:16
Отправитель: vitya


 Вопрос № 1654

К вопросу 1652. Мне надо чтобы программа работала как сервис или вирус. ShowWindow не подходит.



Вопрос отправлен: 28.05.2004, 17:00
Отправитель: qh

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

Отвечает Fess

Здравствуйте, qh! В своё время на старых Виндах, чтобы от Ctrl+Alt+Delete притарить, юзал RegisterServiceProcess. На ХРюше/2000 не пробовал. Вот так вот... А вирус сделать без знакомства с VX making'ом не получится. Винды нужно хорошо знать, формат PE вообще как свои пять пальцев (ну, это не самое сложное). Да я думаю тебе заражать ничего и не нужно, да и размножаться не обязательно. ИМХО что в сторону вирусов ты напрасно копаешь, лучше тогда в сторону троянов копай. Опять же ИМХО. :-)


Ответ отправлен: 31.05.2004, 11:28
Отправитель: Fess


Отвечает CrackLab

Доброе время суток, qh!
По поводу создания сервисов посмотрите тут:
http://doc.docsearch.ru/docs.cgi?pageid=6
а также в BCB есть класс TService для этого дела.

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


Отвечает bocha

Доброе время суток, qh!
SC_HANDLE OpenSCManager( LPCTSTR lpMachineName, LPCTSTR lpDatabaseName , DWORD dwDesiredAccess);//открывает сессию загрузки службы
SC_HANDLE CreateService(SC_HANDLE hSCManager, LPCTSTR lpServiceName, LPCTSTR lpDisplayName,DWORD dwDesiredAccess, DWORD dwServiceType, DWORD dwStartType, DWORD dwErrorControl, LPCTSTR lpBinaryPathName, LPCTSTR lpLoadOrderGroup, LPDWORD lpdwTagId, LPCTSTR lpDependencies, LPCTSTR lpServiceStartName, LPCTSTR lpPassword);
BOOL StartService(CS_HANDLE hService, DWORD dwNumServiceArgs, LPCTSTR* lpServiceArgVectors);
BOLL DeleteService(CS_HANDLE hService);
BOLL CloseServiceHandle(CS_HANDLE hCSObject);//закрывает хендлы и сессии и службы в зависимости от переданного хендла
Имена вобщем-то понятны, детали и примеры копай в MSDN, SDK, DDK

Ответ отправлен: 28.05.2004, 19:38
Отправитель: bocha



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

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

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

Ваше имя:

Ваш e-mail:

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


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

Ваш вопрос:


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


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


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

Программисту
Assembler (20)
C / C++ (15)
Builder / Delphi (17)
Pascal (20)
Basic / VBA (3)
Java / JavaScript (4)
PHP (13)
Криптография (7)
WinAPI (8)
Радиоэлектроника (10)
Пользователю
Windows 95/98/Me (36)
Windows NT/2000/XP (49)
"Железо" (30)
Поиск информации (16)
Администратору
Windows NT/2000/XP (21)
Linux / Unix (8)
Юристу
Гражданское право (12)
Семейное право (9)
Трудовое право (11)
КоАП (7)

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




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.


Яндекс цитирования
© 2001-2004 Россия, Москва. Авторское право: Калашников О.А.

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


В избранное