PDA

View Full Version : WinAPI обмен знаниями


Di@m
15-12-2006, 08:19
Хоть этот форум и большой, но такого рода темы в нем нет.
Все у кого есть вопросы и те, у кого есть ответы или советы, пишите.
На то и создан этот топик.

Di@m
15-12-2006, 08:29
Я пишу курсач на плюсах.
Кто знает, как подключить звук??????
Я пробовал 2 функции
1 PlaySound ("error.wav", NULL, SND_FILENAME | SND_ASYNC) ;
2 sndPlaySound((LPCTSTR)hPtrDataWav,SND_MEMORY|SND_A SYNC );
в обоих случаях выдает ошибку
unresolved external symbol __imp__PlaySoundA@12
DLL"ку я не могу подключить, кричит
winmm.dll : fatal error LNK1136: invalid or corrupt file

Кто знает в чем тут проблема?
Но писать только на чистом WinAPI, без элементов MFC.

RMX
15-12-2006, 21:37
Итак, уважаемые знатоки... Внимание, вАпрос !!
Как найти answer.valuе, удовлетворяющее этому условию... ??

.........................
anti_md5='f623е75аf30e62bbd73d6df5b50bb7b5';
answ_md5 = '77034a11bcc18630f45706f843e15d65';
function CheckAnswer() {
var answer;
answer = document.getElementById('answer');
if (hex_md5(anti_md5+answer.value) == answ_md5) {
return true;
}
...........................
...............
.....

Di@m
17-12-2006, 07:15
Кто работал с файлами.
Помогите, ПОЖАЛУЙСТА, послезавтра сдавать курсач а этот кусок кода не воркает...


case ID_SAVE_FILE:
{
ZeroMemory(&ofn, sizeof(OPENFILENAME));
ofn.lStructSize = sizeof(OPENFILENAME);
ofn.hwndOwner = hdWnd;
ofn.lpstrFile = FileSave;
ofn.nMaxFile = sizeof(FileSave);
ofn.lpstrFilter = "All\0*.*\0Text\0*.TXT\0";
ofn.nFilterIndex = 1;
ofn.lpstrFileTitle = NULL;
ofn.nMaxFileTitle = 0;
ofn.lpstrInitialDir = NULL;
ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;

if (GetOpenFileName(&ofn)==TRUE)
FileS = CreateFile(ofn.lpstrFile, GENERIC_READ,0,
(LPSECURITY_ATTRIBUTES) NULL,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,
(HANDLE) NULL);


Как сюда подключить файл который записывал \читал нужный текст
знаю что функции WriteFile & ReadFile.
Но как их юзать я не знаю....

*Barthez
21-12-2006, 21:28
Поскольку тема называется "WinAPI обмен знаниями" объясните где его используют, это использование даёт выгоду? Если да то в чём? Существуют ли какие то систематизированые справочники и т.п.

Deluxe
22-12-2006, 00:03
Поскольку тема называется "WinAPI обмен знаниями" объясните где его используют, это использование даёт выгоду? Если да то в чём? Существуют ли какие то систематизированые справочники и т.п.
хех, ты всё выучить вздумал :)
это типа ?первая? надстройка на с++ которая позволила программировать под винд....
справочников куча, первая толковая переведенная книга, я считаю петзольд, программироване под виндовз 95 или еффективное программирование под виндовз

Судья Ди
22-12-2006, 10:17
это типа ?первая? надстройка на с++ которая позволила программировать под виндхихи. точно не наоборот? :)

2 *Barthez
WinAPI, или "прокто-API", или просто "API через ж@пу" - это набор точек входа, через которые твоя программа (а также библиотеки функций C/C++) обращается к функциям ядра Windows (работа с памятью, файлами, семафорами, событиями и прочими общесистемными объектами). WinAPI насчитывает больше 5 тыщ функций, изменяется от версии к версии Windows, систематизированного справочника в природе не существует - даже MSDN не содержит полного списка. не юзай - а то при переходе на ещё более новый windows может понадобиться переписывать прогу. юзай стандартные библиотеки функций от C/C++.

EvoLuTioN | rOleX
22-12-2006, 15:23
Вопросик:
API ето случайно не связано с DirectX ?

Судья Ди
22-12-2006, 15:26
API ето случайно не связано с DirectX ?нет. directx - совсем отдельная песня.

Di@m
25-12-2006, 01:33
нет. directx - совсем отдельная песня.
Да это отдельная тема, НО через АРІ можно работать с DirectX.

bangel
25-12-2006, 01:40
Итак, уважаемые знатоки... Внимание, вАпрос !!
Как найти answer.valuе, удовлетворяющее этому условию... ??

.........................
anti_md5='f623е75аf30e62bbd73d6df5b50bb7b5';
answ_md5 = '77034a11bcc18630f45706f843e15d65';
function CheckAnswer() {
var answer;
answer = document.getElementById('answer');
if (hex_md5(anti_md5+answer.value) == answ_md5) {
return true;
}
...........................
...............
.....
Только перебором.

RMX
25-12-2006, 01:43
Только перебором.
Так и подозревал... :rolleyes:

bangel
25-12-2006, 01:45
Поскольку тема называется "WinAPI обмен знаниями" объясните где его используют, это использование даёт выгоду? Если да то в чём? Существуют ли какие то систематизированые справочники и т.п.

Windows API — общее наименование для целого набора базовых интерфейсов программирования приложений операционных систем семейства Windows корпорации Майкрософт. Является самым прямым способом взаимодействия приложений с Windows. Для создания программ, использующих Windows API, Майкрософт выпускает SDK, который называется Platform SDK и содержит документацию, набор библиотек, утилит и других инструментальных средств.

Подробней http://ru.wikipedia.org/wiki/WinAPI

Di@m
25-12-2006, 01:46
Кто игрался со звуком на апишках????
просто через МФЦ работает а через апи не хтит....
:confused:

bangel
25-12-2006, 01:50
Так и подозревал... :rolleyes:
Можно еще попробовать табличным методом востановить, вот здесь например http://passcrack.spb.ru/index.php?name=CrackMD5 но насколько я понимаю anti_md5 передаётся каждый раз браузеру разное дабы md5sum всегда был разный. ;)

bangel
25-12-2006, 01:53
Кто игрался со звуком на апишках????
просто через МФЦ работает а через апи не хтит....
:confused:
You can play sounds using the Windows API quite simply. The call is:

BOOL PlaySound( LPCSTR pszSound, HMODULE hmod, DWORD fdwSound );

Note: in order to use this function you must include the library header: mmsystem.h and link your project to winmm.lib (the multi media library).
pszSound - this is the filename of the sound you wish to play, e.g. "explosion.wav". It can also be a loaded resource.
hmod - this is always NULL if the above is a filename
fdwSound - this is a combination of flags determining the meaning of the other parameters and some options on playing a sound. e.g. specifying SND_FILENAME | SND_ASYNC means pszSound is a filename and that the sound should be played asynchronously (the PlaySound call will exit immediately) .For other flags look in the MSDN help file.

The function returns true if it was successful or false if it failed. If it fails it is often because the sound file has not been found.

To play an explosion that loops we could write:

PlaySound("explosion.wav", NULL, SND_FILENAME | SND_ASYNC | SND_LOOP);

Only one sound can play at once so if you play another sound before the first is finished it will be cut off. You can also stop a sound playing by passing NULL as the pszSound parameter.

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_the_playsound_function.asp

U.S.A.
26-12-2006, 21:59
хихи. точно не наоборот? :)

2 *Barthez
WinAPI, или "прокто-API", или просто "API через ж@пу" - это набор точек входа.
Чел, ты не совсем прав. Полные справочники есть. Совместимость работает. И АПИ - это не совсем точки входа..... :)

Судья Ди
27-12-2006, 00:26
Совместимость работает.Угу. Щас. С удовольствием выслушаю твои комментарии по поводу поведения Origin'овской игры Wing Commander III (версия для Windows - Wing Commander Kilrathi Saga) под Windows 2000 (http://www.google.ru/search?hl=ru&q=Wing+Commander+Virtualprotect&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=) (под Win9x работает как часы):

U.S.A.
27-12-2006, 02:46
Угу. Щас. С удовольствием выслушаю твои комментарии по поводу поведения Origin'овской игры Wing Commander III (версия для Windows - Wing Commander Kilrathi Saga) под Windows 2000 (http://www.google.ru/search?hl=ru&q=Wing+Commander+Virtualprotect&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=) (под Win9x работает как часы):
Есть такая лажа. И проблема не в АПИ. 2000 немного по-другому с памятью работает(разница принципиальная) поэтому эта функцмя не хочет работать так как в 98.
з.ы.А на ХР проверял?

Gwynbleidd
27-12-2006, 04:14
Итак, уважаемые знатоки... Внимание, вАпрос !!
Как найти answer.valuе, удовлетворяющее этому условию... ??

.........................
anti_md5='f623е75аf30e62bbd73d6df5b50bb7b5';
answ_md5 = '77034a11bcc18630f45706f843e15d65';
function CheckAnswer() {
var answer;
answer = document.getElementById('answer');
if (hex_md5(anti_md5+answer.value) == answ_md5) {
return true;
}
...........................
...............
.....

Во-первых - перебором,
Во-вторых - а фигли ты вообще тут делаешь ? Тема топика - WinAPI, а не JavaScript и MD5 Hashes

Gwynbleidd
27-12-2006, 04:20
хихи. точно не наоборот? :)

2 *Barthez
WinAPI, или "прокто-API", или просто "API через ж@пу" - это набор точек входа, через которые твоя программа (а также библиотеки функций C/C++) обращается к функциям ядра Windows (работа с памятью, файлами, семафорами, событиями и прочими общесистемными объектами). WinAPI насчитывает больше 5 тыщ функций, изменяется от версии к версии Windows, систематизированного справочника в природе не существует - даже MSDN не содержит полного списка. не юзай - а то при переходе на ещё более новый windows может понадобиться переписывать прогу. юзай стандартные библиотеки функций от C/C++.

Ты приколист, однако...
Про принцип обратной совместимости не слышал ?
Переписывать ничего не придется

Нда... Не юзай АПИ, юзай стандарт... :lol:
Ты ещё скажи, чтоб народ про MFC даже думать не смел :)

Твои советы хороши, если ты пишешь простенькую консольку. Но вот скажи мне, как стандартными библиотеками от C/C++ организовать оконный GUI???

Gwynbleidd
27-12-2006, 04:24
Угу. Щас. С удовольствием выслушаю твои комментарии по поводу поведения Origin'овской игры Wing Commander III (версия для Windows - Wing Commander Kilrathi Saga) под Windows 2000 (http://www.google.ru/search?hl=ru&q=Wing+Commander+Virtualprotect&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=) (под Win9x работает как часы):
Действительно, не пробовал ли под ХР запускать в режиме совместимости с вин98?

Gwynbleidd
27-12-2006, 04:27
Я пишу курсач на плюсах.
Кто знает, как подключить звук??????
Я пробовал 2 функции
1 PlaySound ("error.wav", NULL, SND_FILENAME | SND_ASYNC) ;
2 sndPlaySound((LPCTSTR)hPtrDataWav,SND_MEMORY|SND_A SYNC );
в обоих случаях выдает ошибку
unresolved external symbol __imp__PlaySoundA@12
DLL"ку я не могу подключить, кричит
winmm.dll : fatal error LNK1136: invalid or corrupt file

Кто знает в чем тут проблема?
Но писать только на чистом WinAPI, без элементов MFC.

А как ты её подключал? В настройках прожекта ? Так попробуй там прописать winmm.lib, а не winmm.dll Точно так же, как и comctl32.lib подключали, чтоб статусбар и тулбар юзать, и прочие красивости

Судья Ди
27-12-2006, 09:33
не пробовал ли под ХР запускать в режиме совместимости с вин98?пробовал. вернее, механизм совместимости с win9x/winnt поставил себе под win2k - без толку. а люди пишут, что и под winxp совместимость не помогает. помогает только корёжить бинарник. а раз так, то легенда о стопроцентной совместимости прокто-api сыпется. :(

Судья Ди
27-12-2006, 09:48
Про принцип обратной совместимости не слышал ? даже видел. :| (http://www.smart.vn.ua/forum/showpost.php?p=1530466&postcount=18)Переписывать ничего не придетсяещё как придётся: на момент написания этой каки никто про win2000 не слышал, а теперь помогает только хак бинарника.Нда... Не юзай АПИ, юзай стандартдык юзаю ж. Ты ещё скажи, чтоб народ про MFC даже думать не смел :) [...] как стандартными библиотеками от C/C++ организовать оконный GUI???юзай, к примеру, Qt - и будет тебе счастье. :) в т.ч. и переносимость, кстати.

но мне это неактуально - я пишу на работе драйверы и простенькие инструментальные программки "на раз" (а те, кто на их базе хочет сваять что-то GUЁ'вое, потом юзают мои наработки в виде библиотек). а "для души" ваяю сурьёзный софт (http://forum.sharereactor.ru/showthread.php?t=59777) - таки на стандартных библиотеках. а если вдруг сильно-сильно хочется притачать GUI - для этого делфи есть. :)

U.S.A.
27-12-2006, 16:03
помогает только хачить бинарник
НУ и чтоже ты хош? Месага - явно авторская, а не стандартная. Знать бы что ты там "хачишь". Вероятно аффnар сей проги использует недокументированые возможности VirtualProtect в вин98.

U.S.A.
27-12-2006, 16:06
сильно-сильно хочется притачать GUI - для этого делфи есть.
:lol: :lol: :lol: :lol: :lol:
А чем же делфи отличается? Те же апи тока юзаются не напрямую.

U.S.A.
27-12-2006, 16:15
а "для души" ваяю [url=http://forum.sharereactor.ru/showthread.php?t=59777]сурьёзный софт
Странно, чувак пишет сурёзные проги, дрова, а про структуру прог под вынь не знает.....

Судья Ди
27-12-2006, 19:52
чувак пишет сурёзные проги, дрова, а про структуру прог под вынь не знает.....а я под вынь не пишу. я пишу переносимо. или кто думает, что "переносимо" только на жабе сделать можно? :lol:

Судья Ди
27-12-2006, 20:04
Месага - явно авторская, а не стандартная.ну да. if ( функция( параметры ) != ПРАВИЛЬНО ) {
MessageBox( "функция взглючила!" );
exit( 1 );
}или что-то в этом роде. по крайней мере, это честнее, чем молча падать или GPF'аться.Вероятно аффnар сей проги использует недокументированые возможности VirtualProtect в вин98.эту игру писал не один десяток человек не один год. а "недокументированных возможностей" в VirtualProtect()'е для win95 было только одно, и то документированное: если предыдущее состояние защиты страниц нафиг не надо - четвёртый параметр функции м.б. == NULL. в win98 это тоже прокатывает. а в win2k - уже низзя так, даже в "win95-совместимом режиме". это называется "проктологическая совместимость", а такие функции (и базирующиеся на них) - "совместимыми через ж@пу". :(

Судья Ди
27-12-2006, 20:05
А чем же делфи отличается?тем, что на нём можно за 10 минут софтинку сваять, поюзать, отладить идею и к вечеру с чистой совестью бахнуть, а идею воплотить на Си и stdlib'е. :)

U.S.A.
27-12-2006, 23:58
ну да. if ( функция( параметры ) != ПРАВИЛЬНО ) {
MessageBox( "функция взглючила!" );
exit( 1 );
}или что-то в этом роде. по крайней мере, это честнее, чем молча падать или GPF'аться.эту игру писал не один десяток человек не один год. а "недокументированных возможностей" в VirtualProtect()'е для win95 было только одно, и то документированное: если предыдущее состояние защиты страниц нафиг не надо - четвёртый параметр функции м.б. == NULL. в win98 это тоже прокатывает. а в win2k - уже низзя так, даже в "win95-совместимом режиме". это называется "проктологическая совместимость", а такие функции (и базирующиеся на них) - "совместимыми через ж@пу". :(
Во- первых с помощью virtualprotect можно в вин 98 добратся до ring0 во - вторых: а по конкретнее низя сказать про "хак"(с дизасемблерным листмнгом итд.) то что ты написал - абсолютно ничего е говорит. По части "НЕ ОДИН ДЕСЯЯТОК ЧЕЛОВЕК И НЕ ОДИН ГОД" - ну и что?! это ничего не меняет! ТЫ бы реально разобрался что к чему а потом говорил. ИМХО раз ты узал что такое АПИ - это не факт что ты знаешь про них все!!!! И кстати Без АПИ ни одна(!!!!) прога под вынь (окромя консольных) работать не будет.

U.S.A.
28-12-2006, 00:04
тем, что на нём можно за 10 минут софтинку сваять, поюзать, отладить идею и к вечеру с чистой совестью бахнуть, а идею воплотить на Си и stdlib'е. :)
Чтобы ты знал: Делфи юзает те же АПИ только добавляет в них свои функции, и в принципе ничем не отличается от МФС (разве что средой разработки и методом компиляции)

Судья Ди
28-12-2006, 13:19
с помощью virtualprotect можно в вин 98 добратся до ring0хм. а как на это влияет наличие или отсутствие поля для сохранения предыдущего состояния?по конкретнее низя сказать про "хак"(с дизасемблерным листмнгом итд.)вечером дома посмотрю, сличу оригинал и патченное - там пару десятков байт поменяно, продизассемблю, поделюсь.По части "НЕ ОДИН ДЕСЯЯТОК ЧЕЛОВЕК И НЕ ОДИН ГОД" - ну и что?! это ничего не меняет!разработчик - Origin, известный своим девизом "мы создаём миры". из их продуктов - навскидку:
- Ultima - то ли 10, то ли 12 серий (это только для PC);
- Wing Commander - если считать все выпуски для PC и не считать примыкающего Privateer'а - 12 выпусков, подробности см. статью из "Навигатора игрового мира" (http://download.wcnews.com/files/other/gamenavigator.pdf);
- Strike Commander - 2 выпуска (ИМХО лучшая "атмосферная" леталка всех времён и народов :) );
- Privateer (лично я не люблю, но многие прутся);
- "Асы над Европой", "Асы над Тихим", асы-ещё-где-то - сам не играл, но, говорят, весьма нехило.

обсуждаемая прога - Wing Commander III: The Heart of the Tiger, основная часть трилогии "Wing Commander: Сага о килрати" (1996 год, 5 компакт-дисков), файл wc3w.exe. под win2k и выше валится через пару десятков миллисекунд после старта, т.е. это явно не глюк разработчика - бета-тестеры в Origin одни из лучших в мире, да если бы и были из худших - всё равно бы отловили.не факт что ты знаешь про них все!!!!и никто не знает - сами мелкомягкие признают, что там больше 5000 функций.кстати Без АПИ ни одна(!!!!) прога под вынь (окромя консольных) работать не будет.не обольщайся - консольные тоже без него работать не будут: как минимум fread/fwrite юзать надо, а CRT - просто wrapper (или helper, не помню, как правильно :) ) над winapi.

Судья Ди
28-12-2006, 13:23
Чтобы ты знал: Делфи юзает те же АПИ только добавляет в них свои функции,знаю.и в принципе ничем не отличается от МФС (разве что средой разработки и методом компиляции)тебя обманули. :) принципиальное отличие для пользователя делфи - что свеженарисованные панельки начинают жить прямо в процессе разработки. т.е. начинающему слепить что-ньдь просеькое типа ханойской башни - уже не несколько дней/недель, а несколько часов. во всяком случае, делфушника переучить на визуал-студь - почти нереально.

U.S.A.
28-12-2006, 23:31
знаю.тебя обманули. :) принципиальное отличие для пользователя делфи - что свеженарисованные панельки начинают жить прямо в процессе разработки. т.е. начинающему слепить что-ньдь просеькое типа ханойской башни - уже не несколько дней/недель, а несколько часов. во всяком случае, делфушника переучить на визуал-студь - почти нереально.
Согласен, так оно и есть. Вот только я говорю про принципиальные различия. Делфи компоненты - тоже класы, хоть и устроені они не так как МФЦ. Кроме того оболочка - не самое гланое отличие...

K@STET
30-12-2006, 17:46
Кто подскажет и покажет...
Вобщем пишу я курсач на Визуальных плюсах 6.0.
Как прочитать сначение из Реестра.
Знаю что нужно юзать функцию RegQueryValue. Но где какой параметр нужно ставить незнаю.
Первый то раздел, второй путь.... а дальше незнаю.
Помогите плз.

Судья Ди
31-12-2006, 00:23
на Визуальных плюсах 6.0.
Как прочитать сначение из Реестра.
Знаю что нужно юзать функцию RegQueryValue. Но где какой параметр нужно ставить незнаю.MSDN пишет:The RegQueryValue function retrieves the data associated with the default or unnamed value of a specified registry key. The data must be a null-terminated string.

Note This function is provided only for compatibility with 16-bit versions of Windows. Applications should use the RegQueryValueEx function.The RegQueryValueEx function retrieves the type and data for a specified value name associated with an open registry key.

LONG RegQueryValueEx(
HKEY hKey, // handle to key
LPCTSTR lpValueName, // value name
LPDWORD lpReserved, // reserved
LPDWORD lpType, // type buffer
LPBYTE lpData, // data buffer
LPDWORD lpcbData // size of data buffer
);
Parameters
hKey
[in] Handle to a currently open key or one of the following predefined keys:
HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
Windows NT/2000/XP: HKEY_PERFORMANCE_DATA
Windows XP: HKEY_PERFORMANCE_TEXT
HKEY_PERFORMANCE_NLSTEXT
Windows 95/98/Me: HKEY_DYN_DATA

lpValueName
[in] Pointer to a null-terminated string containing the name of the value to query.
If lpValueName is NULL or an empty string, "", the function retrieves the type and data for the key's unnamed or default value, if any.

Windows 95/98/Me: Every key has a default value that initially does not contain data. On Windows 95, the default value type is always REG_SZ. On Windows 98, the type of a key's default value is initially REG_SZ, but RegSetValueEx can specify a default value with a different type.

Windows NT/2000/XP: Keys do not automatically have an unnamed or default value. Unnamed values can be of any type.

lpReserved
Reserved; must be NULL.
lpType
[out] Pointer to a variable that receives a code indicating the type of data stored in the specified value. For a list of the possible type codes, see Registry Value Types. The lpType parameter can be NULL if the type code is not required.
lpData
[in, out] Pointer to a buffer that receives the value's data. This parameter can be NULL if the data is not required.
lpcbData
[in/out] Pointer to a variable that specifies the size, in bytes, of the buffer pointed to by the lpData parameter. When the function returns, this variable contains the size of the data copied to lpData.
If the data has the REG_SZ, REG_MULTI_SZ or REG_EXPAND_SZ type, then lpcbData will also include the size of the terminating null character or characters.

The lpcbData parameter can be NULL only if lpData is NULL.

If the buffer specified by lpData parameter is not large enough to hold the data, the function returns the value ERROR_MORE_DATA, and stores the required buffer size, in bytes, into the variable pointed to by lpcbData. In this case, the contents of the lpValue buffer are undefined.

If lpData is NULL, and lpcbData is non-NULL, the function returns ERROR_SUCCESS, and stores the size of the data, in bytes, in the variable pointed to by lpcbData. This lets an application determine the best way to allocate a buffer for the value's data.

Window NT: If hKey specifies HKEY_PERFORMANCE_DATA and the lpData buffer is too small, RegQueryValueEx returns ERROR_MORE_DATA but lpcbData does not return the required buffer size. This is because the size of the performance data can change from one call to the next. In this case, you must increase the buffer size and call RegQueryValueEx again passing the updated buffer size in the lpcbData parameter. Repeat this until the function succeeds. You need to maintain a separate variable to keep track of the buffer size, because the value returned by lpcbData is unpredictable.

Return Values
If the function succeeds, the return value is ERROR_SUCCESS.

If the function fails, the return value is a nonzero error code defined in Winerror.h. You can use the FormatMessage function with the FORMAT_MESSAGE_FROM_SYSTEM flag to get a generic description of the error.

Remarks
The key identified by hKey must have been opened with KEY_QUERY_VALUE access. To open the key, use the RegCreateKeyEx or RegOpenKeyEx function.

If the data has the REG_SZ, REG_MULTI_SZ or REG_EXPAND_SZ type, the string may not have been stored with the proper null-terminating characters. Applications should ensure that the string is properly terminated before using it, otherwise, the application may fail by overwriting a buffer.

If the data has the REG_SZ, REG_MULTI_SZ or REG_EXPAND_SZ type, and the ANSI version of this function is used (either by explicitly calling RegQueryValueExA or by not defining UNICODE before including the Windows.h file), this function converts the stored Unicode string to an ANSI string before copying it to the buffer pointed to by lpData.

Window NT/2000: When calling the RegQueryValueEx function with hKey set to the HKEY_PERFORMANCE_DATA handle and a value string of a specified object, the returned data structure sometimes has unrequested objects. Don't be surprised; this is normal behavior. When calling the RegQueryValueEx function, you should always expect to walk the returned data structure to look for the requested object.

Windows 95/98/Me: No registry subkey or value name may exceed 255 characters.

Windows 95/98/Me: RegQueryValueExW is supported by the Microsoft Layer for Unicode. To use this, you must add certain files to your application, as outlined in Microsoft Layer for Unicode on Windows 95/98/Me Systems.

Example Code
For an example, see Retrieving Data from the Registry.

Requirements
Windows NT/2000/XP: Included in Windows NT 3.1 and later.
Windows 95/98/Me: Included in Windows 95 and later.
Header: Declared in Winreg.h; include Windows.h.
Library: Use Advapi32.lib.
Unicode: Implemented as Unicode and ANSI versions on Windows NT/2000/XP. Also supported by Microsoft Layer for Unicode.

See Also
Registry Overview, Registry Functions, ExpandEnvironmentStrings, RegCreateKeyEx, RegEnumKeyEx, RegEnumValue, RegOpenKeyEx, RegQueryInfoKey

K@STET
31-12-2006, 01:24
MSDN пишет:
Спасибо... Но я нифига не понимаю...
Если кто-нибудь может привести пример как с нормальным кодом, то плз сделайте это.

Di@m
31-12-2006, 02:04
Спасибо... Но я нифига не понимаю...
Если кто-нибудь может привести пример как с нормальным кодом, то плз сделайте это.

Если не мож перевести зайди на rsdn.ru (http://www.rsdn.ru)

U.S.A.
31-12-2006, 02:09
Спасибо... Но я нифига не понимаю...
Если кто-нибудь может привести пример как с нормальным кодом, то плз сделайте это.
http://netcode.ru/cpp/download/
Тебе сюда. Качай весь проект ИМХО не пожалеешь. ТАм всего примерно 90 метров. Куча примеров использования АПИ, МФЦ и вообще С++.
Еще есть сайт www.firststeps.ru, но он очень запутаный
ДА, и учи аглицкий ибо без него - никуда....

Di@m
22-01-2007, 03:13
Подскажите как писать DLL на С++.
И как к ним обращаться со своего проекта.

Судья Ди
22-01-2007, 10:22
Подскажите как писать DLL на С++.
И как к ним обращаться со своего проекта.visual studio 6: создать новый проект, дальше закладка "projects", тип "win32 dll", дальше выбираешь желаемый (можно сделать козу с mfc или без него, можно просто пустой проект). дальше как обычный проект.

как подключить: в том же workspace'е создать ещё и проект аппликухи, в нём project / dependencies, выбрать в качестве "зависимости" проект с dll'кой.

подробности - в msdn'е.

Di@m
17-08-2007, 01:10
Вообщем есть кусо кода который хаваетЪ инфу с порта (зарание отправленой другой прогой).
клиент - сервер.
как можно сделать вертушку которая проверяла этот порт, суть в том не как сделать таймер а какое время задерШШШки было бы эффективным.