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

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


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

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

Выпуск № 750
от 26.05.2007, 01:35

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


Вопрос № 87689: Здраствуйте!! У меня вопрос. допустим такой код: main() { .. HANDLE hFile; hFile=NULL; SomeFunction(..,hFile,..); .. } SomeFunction(..,HANDLE hFile,..); { ... hFile=FindFirstFile(....); ...
Вопрос № 87703: Прива всем! Я поставил себе vista home prmeium и с еней не совместимы некоторые проги. Оказалось что и visual С++ 6.0 несовместим! Какая версия Visual С++ пойдет под висту?!!...
Вопрос № 87747: Помогите пожалуйста, необходимо на C организовать программу которая удовлетворяет следующим требованиям: 1. Написать функцию str_split, которая не возвращает значений и имеет два аргумента: а) phrase - символьную строку, б) pWord...
Вопрос № 87762: Добрый день, Эксперты. Как можно в С++ инвертировать байт? Подойдёт любой вариант, ассемблерная вставка. Может даже есть специальная функция на ассемблере для этого? Заранее спасибо....
Вопрос № 87763: Привет экспертам! Не подскажете где можно посмотреть код системных функций (DOS or WIN). Например таких как fclose(), или CreateDirectory() ? И соответственно попробовать написать программу без вызова последних. См...
Вопрос № 87764: Здравствуйте, уважаемые эксперты! Ещё один вопрос: как этот же байт обратить? Если например есть: 10110011 то нужно получить: 11001101. Большое спасибо....
Вопрос № 87770: Здравствуйте! В данный момент занимаюсь разработкой игры. В ней мне нужно будет сделать движок, чтобы при нажатии кнопок "влево" и "вправо" менялись координаты объекта. Как мне работать с клавиатурой? Чтобы при нажатии на эти две ...
Вопрос № 87788: здравствуйте уважаемые эксперты!Скажите как можно преобразовать число к текстовому виду(помимо IntToStr и FloatToStr).Заранее спасибо....
Вопрос № 87801: Здраствуйте С помощью удаленных потоков внедрился в процесс. После того как в DllEntryPoint выполнятся все функкции поток благополучно завершается. В этом и проблема. Нужно чтобы он завершался вместе с главным потоком. Может быть у кого-нибудь ес...
Вопрос № 87812: Здравствуйте, Эксперты! Windows хранит свой реестр в одном файле(не помню в каком, но можно узнать, это не важно, по моему, NTUSER.DAT, что ли). А вопрос вот какой: Можно ли создавать или хотя бы изменять существующие значения реестра, не...

Вопрос № 87.689
Здраствуйте!!
У меня вопрос. допустим такой код:
main()
{
..
HANDLE hFile;
hFile=NULL;
SomeFunction(..,hFile,..);
..
}

SomeFunction(..,HANDLE hFile,..);
{
...
hFile=FindFirstFile(....);
..
}

После выполнения функции в main'e hFile остаеться с значением NULL,
как зделать так чтобы оно было не нуль а всетаки получило указатель на объект FindFirstFile, и чтобы hFile был только в аргументах не возращать его??
Отправлен: 20.05.2007, 01:23
Вопрос задал: HITY (статус: Посетитель)
Всего ответов: 5
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Sov
Здравствуйте, HITY!
При передаче в функцию параметров по значению в стек заносятся копии значений аргументов
и работа ведется с копиями. Поэтому в main hfile и остается равным null. В вашем случае нужно передавать параметры по адресу

Приложение:

Ответ отправил: Sov (статус: 3-ий класс)
Ответ отправлен: 20.05.2007, 08:19
Оценка за ответ: 5
Комментарий оценки:
И За объяснения спасибо

Отвечает: kool
Здравствуйте, HITY!
Можно так:
SomeFunction(..,HANDLE &hFile,..);
{
....
hFile=FindFirstFile(....);
...
}
Все остальное должно остаться как есть.
Удачи!

---------
I am.
Ответ отправил: kool (статус: Студент)
Ответ отправлен: 20.05.2007, 09:40
Оценка за ответ: 5

Отвечает: Gsa
Здравствуйте, HITY!

надо передать ссилку - SomeFunction(..,&hFile,..);
Ответ отправил: Gsa (статус: 5-ый класс)
Ответ отправлен: 20.05.2007, 12:26
Оценка за ответ: 5

Отвечает: Ilkras
Здравствуйте, HITY!
Если ты пишешь на С++ то надо передавать не HANDLE, a HANDLE& - reference type - по смыслу соответствует указателю в С.
Если ты пишешь в С, то передавай указатель - (HANDLE *) и внутри функции присваивай значение через dereference :

SomeFunction(..,HANDLE * lphFile,..);
{
...
*lphFile=FindFirstFile(....);
..
}
Ответ отправил: Ilkras (статус: 10-ый класс)
Ответ отправлен: 20.05.2007, 15:54
Оценка за ответ: 5

Отвечает: Proctozont
Здравствуйте, HITY!
Передавайте объект либо по ссылке
SomeFunction(..,HANDLE* hFile,..);
{
...
hFile=FindFirstFile(....);
..
}
Либо по значению
SomeFunction(..,HANDLE &hFile,..);
{
...
hFile=FindFirstFile(....);
..
}
Ответ отправил: Proctozont (статус: 1-ый класс)
Ответ отправлен: 20.05.2007, 22:28
Оценка за ответ: 5
Комментарий оценки:
Да, Спасибо я уже понял!!! Уже столько получил этих ответов!!


Вопрос № 87.703
Прива всем!
Я поставил себе vista home prmeium и с еней не совместимы некоторые проги. Оказалось что и visual С++ 6.0
несовместим! Какая версия Visual С++ пойдет под висту?!!
Отправлен: 20.05.2007, 09:00
Вопрос задал: Tatarin (статус: 2-ой класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Mystic
Здравствуйте, Tatarin!
Под нее пойдут Visual Studio 2003 .NET или 2005 .NET.
Ответ отправил: Mystic (статус: 6-ой класс)
Ответ отправлен: 20.05.2007, 09:09

Отвечает: Ilkras
Здравствуйте, Tatarin!
попробуй последнюю - Visual Studio 2005
кроме того почитай http://msdn2.microsoft.com/en-us/vstudio/aa948853.aspx
Удачи
Ответ отправил: Ilkras (статус: 10-ый класс)
Ответ отправлен: 20.05.2007, 15:50
Оценка за ответ: 5
Комментарий оценки:
Спасибо, попробую поставить


Вопрос № 87.747
Помогите пожалуйста, необходимо на C организовать программу которая удовлетворяет следующим требованиям:
1. Написать функцию str_split, которая не возвращает значений и
имеет два аргумента:
а) phrase - символьную строку,
б) pWord - массив указателей на строки.
Функция предназначена для выделения в строке отдельных слов.

Отдельным словом считается любая последовательность букв,
не содержащая пробельных символов (пробел, табуляция, перевод строки).

Предполагается, что строка содержит не более 9 слов, а также,
что между словами может быть только один пробельный символ.

Функция str_split разбивает строку на отдельные слова, вставляя вместо
пробельных символов символы конца строки (нуль-терминаторы). Несколько
следующих подряд пробельных символов воспринимаются как один (т.е.
первый заменяется на нулевой код, а остальные пропускаются.
Начало каждого слова запоминается в массиве указателей (второй параметр
функции).
Так как количество выделенных слов в строке не подсчитывается, то
после просмотра строки в массив указателей вводится последний элемент -
NULL (признак конца массива указателей).

2. Написать функцию main, в которой
а) Определяется массив (предположим, из 100 символов) для хранения
исследуемой строки.
б) Определяется массив указателей.
в) Вводится с клавиатуры строка, не более чем из 9 слов (возможна
пустая строка).
Замечание.
При отладке программы строку задавать, инициализируя соответствующую
переменную.

г) На экран выводится текст "Исходная строка:" и сама строка.
д) Функцией str_split строка разбивается на отдельные слова.
д) Выводится текст "Результат разбиения:" и последовательно
по одному в строке выводятся выделенные слова (использовать
массив указателей).
е) Проверить работу программы.
ж) Усложнить задачу, допуская наличие нескольких пробельных
символов подряд. Проверить работу программы.
з) Допуская ввод только латинских символов добиться, чтобы
первый буквы слов были строчными.

ЗАМЕЧАНИЕ.
Глобальные переменные не использовать!
Определение функции str_split разместить после main.

УСЛОЖНЕНИЕ: перевести в верхний регистр первые три символа каждой
строки, используя как операцию индексации, так и cдвиг указателей.
Отправлен: 20.05.2007, 14:45
Вопрос задал: Vitaly89 (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Терсков Сергей
Здравствуйте, Vitaly89!

Вы недавно задавали подобный вопрос и текст программы был приведен в приложении. Если и потребуются какие-то изменения, то совсем незначительные. Подробнее здесь...

http://rusfaq.ru/info/question/87281
Ответ отправил: Терсков Сергей (статус: 10-ый класс)
Ответ отправлен: 21.05.2007, 02:56


Вопрос № 87.762
Добрый день, Эксперты.

Как можно в С++ инвертировать байт? Подойдёт любой вариант, ассемблерная вставка. Может даже есть специальная функция на ассемблере для этого?

Заранее спасибо.
Отправлен: 20.05.2007, 16:13
Вопрос задал: Const (статус: 1-ый класс)
Всего ответов: 5
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Melamed
Здравствуйте, Const!
Вам следует воспользоваться операцией побитного нет. Смотри приложение

Приложение:

Ответ отправил: Melamed (статус: Студент)
Ответ отправлен: 20.05.2007, 16:25

Отвечает: Sov
Здравствуйте, Const!
Есть такая функция-not
unsigned char a=1;
unsigned char b;
__asm
{
mov ah,a
mov b,ah
not b
}
Ответ отправил: Sov (статус: 3-ий класс)
Ответ отправлен: 20.05.2007, 17:47

Отвечает: Gsa
Здравствуйте, Const!

инвертировать можно с инструкцией NOT: i=~i
Ответ отправил: Gsa (статус: 5-ый класс)
Ответ отправлен: 20.05.2007, 18:06

Отвечает: kool
Здравствуйте, Const!
Инвертировать - это значит поменять
все его биты на противоположные, тогда так:
BYTE b=100;
b^=0xFF;
Удачи!

---------
I am.
Ответ отправил: kool (статус: Студент)
Ответ отправлен: 20.05.2007, 19:51

Отвечает: Ilkras
Здравствуйте, Const!
Точно также как и в С.
unsigned char B, C;

B = 0xAB;
C = ~B;

Приложение:

Ответ отправил: Ilkras (статус: 10-ый класс)
Ответ отправлен: 20.05.2007, 20:18


Вопрос № 87.763
Привет экспертам!

Не подскажете где можно посмотреть код системных функций (DOS or WIN).

Например таких как fclose(), или CreateDirectory() ?

И соответственно попробовать написать программу без вызова последних.

Смотрел в папках include, соответствующие файлы *.h, ни черта там не понял.

Не подскажете как и где правильно посмотреть, и соответ. написать.

Спасибо.
Отправлен: 20.05.2007, 16:27
Вопрос задал: DEVILL (статус: Посетитель)
Всего ответов: 5
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Dark Daskin
Здравствуйте, DEVILL!
Исходники msvcrt (fopen, fclose, ...) лежат в папке Program Files\Microsoft Visual Studio 8\VC\crt\src\
Исходники API-функций строго засекречены MS-ом. Впрочем, похожие функции можно посмотреть в исходниках ReactOS: http://svn.reactos.org/svn/reactos/
---------
Драконы наступают!
Ответ отправил: Dark Daskin (статус: 1-ый класс)
Ответ отправлен: 20.05.2007, 16:45

Отвечает: Sov
Здравствуйте, DEVILL!
Очень интересный вопрос. Про коды функций в win я ничего не слышал.
В общих чертах- когда вы вызываете функцию меняется ее имя на адрес, выполняется переход по этому адресу и выполняется код функции
Такого понятия "код функции" не существует
Ответ отправил: Sov (статус: 3-ий класс)
Ответ отправлен: 20.05.2007, 17:36

Отвечает: kool
Здравствуйте, DEVILL!
fclose() в Win32 это оболочка
для более сложных вызовов API - фу-ций.
CreateDirectory() - возможно тоже ф-ция оболочка.
Их ассемблерный код можно посмотреть отладчиком уровня ядра.
Удачи!

---------
I am.
Ответ отправил: kool (статус: Студент)
Ответ отправлен: 20.05.2007, 19:51

Отвечает: Ilkras
Здравствуйте, DEVILL!
fclose() это не системная функция, а часть библиотеки. Посмотреть можно например в инсталляционной директории VisualC. У меня это находится в C:Program FilesMicrosoft Visual StudioVC98CRTSRC, у вас может быть в другом месте.
Ответ отправил: Ilkras (статус: 10-ый класс)
Ответ отправлен: 20.05.2007, 20:36

Отвечает: Proctozont
Здравствуйте, DEVILL!
Берете отладчик, пишете маленькую програмку которая использует эти функции, и понеслась, а вообще если "Смотрел в папках include, соответствующие файлы *.h, ни черта там не понял.", то думаю это вам не поможет и всетаки придется их использовать.
Ответ отправил: Proctozont (статус: 1-ый класс)
Ответ отправлен: 20.05.2007, 22:41


Вопрос № 87.764
Здравствуйте, уважаемые эксперты!

Ещё один вопрос: как этот же байт обратить? Если например есть: 10110011 то нужно получить: 11001101.

Большое спасибо.
Отправлен: 20.05.2007, 16:31
Вопрос задал: Const (статус: 1-ый класс)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Sov
Здравствуйте, Const!
mov ah,11001101b
not ah
Удачи!
Ответ отправил: Sov (статус: 3-ий класс)
Ответ отправлен: 20.05.2007, 16:57

Отвечает: kool
Здравствуйте, Const!
См. приложение.
-----------------------
***********************
Удачи!

Приложение:

---------
I am.

Ответ отправил: kool (статус: Студент)
Ответ отправлен: 20.05.2007, 19:54
Оценка за ответ: 5
Комментарий оценки:
Большое спасибо! Это как раз то что мне нужно было! Хороший пример. Остаётся только разобраться как следует.

Отвечает: Ilkras
Здравствуйте, Const!
unsigned char A, B, C, D;
A = 0xAB;
B = ~A;// bitwise inversion
C = ~B;
assert(C ==A); //не должно упасть, т.к. А и С одинаковы
Ответ отправил: Ilkras (статус: 10-ый класс)
Ответ отправлен: 20.05.2007, 20:38

Отвечает: John Paramol
Здравствуйте, Const!
Другой вариант:

BYTE Src = 0xB3;
// Src = 0xB3 = 10110011
BYTE Dst =
(Src&0x80)>>7 | (Src&0x40)>>5 | (Src&0x20)>>3 | (Src&0x10)>>1 |
(Src&0x08)<<1 | (Src&0x04)<<3 | (Src&0x02)<<5 | (Src&0x01)<<7;
// Dst = 0xCD = 11001101

Удачи
---------
1=2, at values 1 large enough
Ответ отправил: John Paramol (статус: 8-ой класс)
Ответ отправлен: 22.05.2007, 17:21


Вопрос № 87.770
Здравствуйте! В данный момент занимаюсь разработкой игры. В ней мне нужно будет сделать движок, чтобы при нажатии кнопок "влево" и "вправо" менялись координаты объекта. Как мне работать с клавиатурой? Чтобы при нажатии на эти две клавиши менялась переменная x. Заранее спасибо. С уважением Артём.
Отправлен: 20.05.2007, 17:13
Вопрос задал: NC.Luther (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Vest
Здравствуйте, NC.Luther!
В принципе вопрос не относился к конкретной ОС, потому отвечу следующим образом. Идея программ такого рода заключается в том, что у тебя есть некий главный цикл, который отвечает за работу приложения вцелом (будь то dos, windows или любая другая OS), он называется event loop. То есть цикл с событиями.
При нажатии клавиши (например в Windows) возникают сообщения WM_KEYDOWN или WM_SYSKEYDOWN, которые посылаются активному в данный момент окну. То есть тебе впервую очередь нужно смотреть их и в зависимости от того какая клавиша нажата, выполнять изменение координаты x твоего объекта.
В dos похожим образом можно сделать так (смотри приложение).

Основная проблема в Windows, которая может возникнуть, это то, что при долгом нажатии клавиши, твоё приложение будет получать миллион сообщений и может не успевать отрисовываться. К сожалению не помню как такая проблема решается, возможно выделением процедуры прорисовки экрана или просчёта объектов в отдельный поток. например в PalmOS был похожий пример с движ. объектом, так там благодаря API функциям код клавиши извлекался прямиком из какого-то внутреннего буфера, минуя очередь сообщений...

А так, что можно посоветовать, поищи исходники простых примеров, вроде в Delphi что ли был пример какой-то простой игры, но я не уверен

Приложение:

---------
"Халявы не бывает" (c)

Ответ отправил: Vest (статус: 4-ый класс)
Ответ отправлен: 20.05.2007, 21:29

Отвечает: V1s0r
Здравствуйте, NC.Luther!

Смотря, на чём ты пишешь.

Если на OpenGL, то используй, например, GLUT keyboard_callback (если сочетание OpenGL+Qt, то отлавливай от виджета события клавиатуры).
Если на DirectX, то лучший вариант - DirectInput.
Если на Borland C++ 3.1 для DOS :), то kbhit и getch настоятельно не рекоммендую.
Я в своё время писал ассемблерную вставку для контроля за клавиатурой. В результате, получилось что-то похожее на DirectInput. Кстати, код сохранился. Если надо, то сообщи мне свой ящик, вышлю.
Ответ отправил: V1s0r (статус: 3-ий класс)
Ответ отправлен: 21.05.2007, 14:59


Вопрос № 87.788
здравствуйте уважаемые эксперты!Скажите как можно преобразовать
число к текстовому виду(помимо IntToStr и FloatToStr).Заранее спасибо.
Отправлен: 20.05.2007, 19:23
Вопрос задал: Hunter20 (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Sov
Здравствуйте, Hunter20!
Могу предложить функции stdlib
atoi,atof,atol
Ответ отправил: Sov (статус: 3-ий класс)
Ответ отправлен: 20.05.2007, 20:27

Отвечает: Ilkras
Здравствуйте, Hunter20!
можно еще воспользоваться sprintf(targetString, "%d", myInteger);
еще есть itoa(). вот пример из MSDN
_itoa( i, buffer, 10 );
printf( "String of integer %d (radix 10): %s ", i, buffer );
_itoa( i, buffer, 16 );
printf( "String of integer %d (radix 16): 0x%s ", i, buffer );
_itoa( i, buffer, 2 );
printf( "String of integer %d (radix 2): %s ", i, buffer );

_ltoa( l, buffer, 16 );
printf( "String of long int %ld (radix 16): 0x%s ", l,
buffer );

_ultoa( ul, buffer, 16 );
printf( "String of unsigned long %lu (radix 16): 0x%s ", ul,
buffer );
Ответ отправил: Ilkras (статус: 10-ый класс)
Ответ отправлен: 20.05.2007, 20:41

Отвечает: kool
Здравствуйте, Hunter20!
Есть такая ф-ция sprintf();

char str[100];
int a=1000;
float b=1.1;
sprintf(str,"%i %f",a,b);
printf(str);

Удачи!
---------
I am.
Ответ отправил: kool (статус: Студент)
Ответ отправлен: 20.05.2007, 22:39
Оценка за ответ: 5

Отвечает: Mystic
Здравствуйте, Hunter20!
Есть достаточно удобное решение этой проблемы с помощью потоков.
Пример:
ostringstream str;
float a;
int b;
str << a << b;
string result = str.str();
Конечно, кажется, что код неудобен, но после начало использования мнение обычно меняется. (такой способ рекомендуется использовать, поскольку atof и тд - функции языка С, в С++ лучше пользоваться своими стандартными библиотеками).
Ответ отправил: Mystic (статус: 6-ой класс)
Ответ отправлен: 21.05.2007, 08:50
Оценка за ответ: 5


Вопрос № 87.801
Здраствуйте
С помощью удаленных потоков внедрился в процесс. После того как в DllEntryPoint выполнятся все функкции поток благополучно завершается. В этом и проблема. Нужно чтобы он завершался вместе с главным потоком. Может быть у кого-нибудь есть мысли как заставить поток дожидаться определенного события и только потом завершаться?
Отправлен: 20.05.2007, 20:43
Вопрос задал: Sov (статус: 3-ий класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Решетник Д
Здравствуйте, Sov!
Просто можете создать в длл поток, который ожидает событие синхронизации.
и тогда с главного приложения можно подать сигнал сразу всем потокам...
Смотрите в сторону mutex.. createmutex
вот так ждем-сс сигнала

DWORD WINAPI name(LPVOID lpThreadParameter)
{
SECURITY_ATTRIBUTES sa = {0};
sa.nLength = sizeof(sa);
sa.bInheritHandle = FALSE;
BOOL bGotSA = FALSE;
SECURITY_DESCRIPTOR sd;
if(InitializeSecurityDescriptor(&sd, SECURITY_DESCRIPTOR_REVISION))
{
if(SetSecurityDescriptorDacl(&sd, TRUE, (PACL)NULL, FALSE))
{
bGotSA = TRUE;
sa.lpSecurityDescriptor = &sd;
}
}
HANDLE hMutex;
int nErr;
if(bGotSA)
{
hMutex = CreateEvent(&sa, true, false, "name");
}
else
{
hMutex = CreateEvent(NULL, true, false, "name");
}

if(WaitForSingleObject(hMutex, INFINITE)==WAIT_OBJECT_0)
{
close this...;
}
if(hMutex)
{
CloseHandle(hMutex);
}
return 0;
}


а вот так даем сигнал, если не ошибаюсь

HANDLE hEv2 = CreateEvent(0, true, false, "name");
SetEvent(hEv2);
CloseHandle(hEv2);

---------
Жизнь коротка, чтобы писать на ассемблере
Ответ отправил: Решетник Д (статус: Студент)
Ответ отправлен: 20.05.2007, 20:51
Оценка за ответ: 5
Комментарий оценки:
Спасибо, буду разбираться

Отвечает: kool
Здравствуйте, Sov!
/////////////////////////////
УСЫПИТЬ поток Sleep(INFINITE);
*****************************
:(:)
Удачи!

---------
I am.
Ответ отправил: kool (статус: Студент)
Ответ отправлен: 20.05.2007, 22:49
Оценка за ответ: 4
Комментарий оценки:
Приложение зависает(


Вопрос № 87.812
Здравствуйте, Эксперты!
Windows хранит свой реестр в одном файле(не помню в каком, но можно узнать, это не важно, по моему, NTUSER.DAT, что ли).
А вопрос вот какой:
Можно ли создавать или хотя бы изменять существующие значения реестра, непосредственно через этот файл. Т.е. напрямую, минуя функции работы с реестром. А обращаясь к этому файлу.
Если можно, то как? Открыть, добавать, изменить, сохранить, закрыть и т.д. Как осуществить доступ к значениям, ну короче все что нужно для работы с реестром.
Или если знаете где можно почитать, то дайте хотя бы ссылки.

Спасибо за внимание!
Отправлен: 20.05.2007, 22:47
Вопрос задал: Patriotix-N (статус: 3-ий класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Jadd
Здравствуйте, Patriotix-N!
Файл открыт операционной системой в монопольном режиме, что вполне естесственно. Чтобы писать непосредственно в файл реестра, нужно знать его структуру - сомнительное удовольствие. Проще воспользоваться тем, что дает WinAPI для работы с реестром. Не поленитесь и почитайте в MSDN информацию о работе с реестром, там все просто и прозрачно.
Если есть MSDN на дисках, тогда в поле адреса введите ms-help://MS.MSDNQTR.2004JUL.1033/sysinfo/base/registry_functions.htm
если нету, тогда сюда http://msdn2.microsoft.com/en-us/library/ms724875.aspx

Удачи
---------
Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Профессионал)
Адрес: Санкт-Петербург
WWW: http://www.sport-diary.ru
----
Ответ отправлен: 21.05.2007, 15:22
Оценка за ответ: 4
Комментарий оценки:
"Проще воспользоваться тем, что дает WinAPI для работы с реестром." - это дураку понятно.
А я спрашивал "минуя функции работы с реестром". Я хотел именно напрямую.
А за первую часть спасибо! Нельзя так нельзя!


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

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

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

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

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала 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

В избранное