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

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


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


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

Выпуск № 067
от 28.08.2002, 15:10

Администратор:
Имя: Коробов Н.А.
URL: Информационный ресурс
ICQ: 365124
Украина, Днепропетровск
О рассылке:
Задано вопросов: 201
Отправлено ответов: 399
Активность: 198.5 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе]


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

vitya
Статус: Профессиональный
Общий рейтинг: 112.03
[Подробней >>]
Yuri Gordienko
Статус: Начальный
Общий рейтинг: 122.85
[Подробней >>]
Pablo
Статус: Профессиональный
Общий рейтинг: 130.84
URL: Моя страничка
[Подробней >>]


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

Вопрос № 182. Здравствуйте. Не могли бы вы прислать мне сэмпл программы под 9х, которая бы работала с UNICODE. Вы ... (ответов: 1)
Вопрос № 183. Здарова. По поводу вопроса №169 о выключении компа в Win2000,XP. Все делается очень просто. И никако... (ответов: 1)
Вопрос № 184. Дарова всем! Покажите пожалуйста как открыть текстовой файл с помощью API функции CreateFile(); На п... (ответов: 3)

Вопросов: 3, ответов: 5


 Вопрос № 182

Здравствуйте.
Не могли бы вы прислать мне сэмпл программы под 9х, которая бы работала с UNICODE. Вы можете сказать, что такого не может быть, но я уточню вопрос. Я пишу программу, которая будет работать и под 9х, и под NT. Из-за известных различий в UNICODE, нельзя откомпилить порграмку с UNICODE так, чтобы она работала и с 9х тоже, т.к. там на определены ...W функции (ну определены только несколько, их мало). Поэтому я поступил так:
#define UNICODE
#include
#undef FormatMessage
#undef RegOpenKeyEx
#undef RegSetValueEx
...
#define FormatMessage FormatMessageU
#define RegOpenKeyEx RegOpenKeyExU
#define RegSetValueEx RegSetValueExU
...
а затем эти ...U функции проверяют поддержку UNICODE, если поддержка есть, они просто передают управление, если нет, то они используют ...A аналоги функций, преобразуя перед этим (или после, в зависимости от функции) строки в ANSI. Т.е. программа внутренне хранит строки только в ЮНИКОД. Проблема возникла пости сразу же, с функцией CreateWindowEx. Я не понимаю, что она от меня хочет %). Вроде я ей передал ANSI строки, но она возвращает NULL, и еще и GetLastError() возвращает 0. RegisterClassExA возвращает нормальное значение. Т.е. ошибки нет. В чем грабли? Если не трудно, укажите линк для разработки таких программ (ANSI-UNICODE), а еще лучше -- вышлите сэмпл.


Приложение:


Вопрос отправлен: 24.08.2002, 16:17
Отправитель: Golden Vst (goldenvst@mail.ru)

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

Отвечает vitya

Добрый день, Golden Vst!
Вся проблема в том (посмотрите Рихтера), что под win95 юникода вроде ввобще как бы нету, под win98 только некоторые функции работают. Так что вся проблема из-за этого, пересаживайтесь на nt/2000/xp

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


 Вопрос № 183

Здарова.
По поводу вопроса №169 о выключении компа в Win2000,XP.
Все делается очень просто. И никакой защиты нет.
Высылаю кусок кода. Взгляните на него!!!
Тут винда переходит в спящий режим (если кто понимает что такое в XP спящий режим).


Приложение:


Вопрос отправлен: 25.08.2002, 01:38
Отправитель: Switcher (Swi2002@mail.ru)

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

Отвечает Yuri Gordienko

Добрый день, Switcher!
Про твой пример скажу следующее, я использовал эту методу в одной своей программе с месяц назад. Дык вот, на 6 из 10 абсолютно с одинаковой аппаратной (а первоначально и программной) частью она работала как нужно, но на 4 не прошло напроч, причем доступ у юзеров на выключение системы был (XP), так что подитожим,- на винде ни в какой функции до конца быть увереным нельзя ;))


Ответ отправлен: 25.08.2002, 03:28
Отправитель: Yuri Gordienko


 Вопрос № 184

Дарова всем!
Покажите пожалуйста как открыть текстовой файл с помощью API функции CreateFile(); На примере плиз. Не надо мне прототип функции показывать.
Заранее спасиба!



Вопрос отправлен: 25.08.2002, 15:00
Отправитель: Влад

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

Отвечает Pablo

Доброе время суток, Влад!
Ну попробуй так:
CreateFile("c:\file.ext", GENERIC_READ, FILE_SHARE_DELETE, NULL, OPEN_EXISTING, FILE_FLAG_DELETE_ON_CLOSE, NULL);


Ответ отправлен: 27.08.2002, 22:14
Отправитель: Pablo


Отвечает vitya

Добрый день, Влад!
HANDLE hFile = ::CreateFile(strTextFile, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if (INVALID_HANDLE_VALUE == hFile)
{
MessageBox(NULL, "Error opening file!", "Error!", MB_OK | MB_ICONHAND);
}
//do the shit...
Итак файл открывается для чтения и записи, при этом, разрешается совместное чтение файла, никого security не предусмотенно, всегда открывается существующий файл, шаблона так же не предусмотренно. После открытия производится проверка на ошибки. Усе.

Ответ отправлен: 26.08.2002, 08:37
Отправитель: vitya


Отвечает Yuri Gordienko

Доброе время суток, Влад!
Интересно ты программы пишеш, если прототипы не интересуют ;))
Смотри, - открываем файл для чтения и записи
HANDLE hFile = CreateFile("test.tmp", GENERIC_WRITE | GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if(hFile != INVALID_HANDLE_VALUE){
//открыли
}


Ответ отправлен: 26.08.2002, 01:15
Отправитель: Yuri Gordienko



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

Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

© 2002 Команда RusFAQ.ru.

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

Ваше имя:

Ваш e-mail:

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


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

Ваш вопрос:


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


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


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

Программисту
Assembler (40)
C / C++ (29)
Perl (12)
Delphi (16)
Pascal (25)
Basic / VBA (11)
Java / JavaScript (13)
PHP (11)
MySQL / MSSQL (13)
Пользователю
Windows 95/98/Me (45)
Windows NT/2000/XP (30)
"Железо" (39)
Поиск информации (18)
Администратору
Windows NT/2000/XP (16)
Linux / Unix (17)
Юристу
Гражданское право (9)
Семейное право (7)
Трудовое право (8)
КоАП (5)

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




be number one Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru

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

В избранное