Вінницький форум  

Повернутись   Вінницький форум > Міський форум > Технічний форум

View Poll Results: Вы исполбзуете WinAPI ?
да 7 25.00%
нет 4 14.29%
а что это??? 17 60.71%
Ті, хто голосували: 28. You may not vote on this poll

Відповідь
 
Опції теми Опції перегляду
Старий 27-12-2006, 20:05   #31
Судья Ди
Гигант мысли
 
Судья Ди's Avatar
 
Реєстрація: Dec 2006
Адреса: Порубежье
Повідомлення: 1,052
За замовчуванням

Цитата:
Повідомлення від U.S.A.
А чем же делфи отличается?
тем, что на нём можно за 10 минут софтинку сваять, поюзать, отладить идею и к вечеру с чистой совестью бахнуть, а идею воплотить на Си и stdlib'е.
Судья Ди не на форумі   Reply With Quote
Старий 27-12-2006, 23:58   #32
U.S.A.
Читатель
 
Реєстрація: Dec 2006
Повідомлення: 71
За замовчуванням

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

Останній раз редагувалося U.S.A.; 00:01.
U.S.A. не на форумі   Reply With Quote
Старий 28-12-2006, 00:04   #33
U.S.A.
Читатель
 
Реєстрація: Dec 2006
Повідомлення: 71
За замовчуванням

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

Останній раз редагувалося U.S.A.; 00:12.
U.S.A. не на форумі   Reply With Quote
Старий 28-12-2006, 13:19   #34
Судья Ди
Гигант мысли
 
Судья Ди's Avatar
 
Реєстрація: Dec 2006
Адреса: Порубежье
Повідомлення: 1,052
За замовчуванням

Цитата:
Повідомлення від U.S.A.
с помощью virtualprotect можно в вин 98 добратся до ring0
хм. а как на это влияет наличие или отсутствие поля для сохранения предыдущего состояния?
Цитата:
по конкретнее низя сказать про "хак"(с дизасемблерным листмнгом итд.)
вечером дома посмотрю, сличу оригинал и патченное - там пару десятков байт поменяно, продизассемблю, поделюсь.
Цитата:
По части "НЕ ОДИН ДЕСЯЯТОК ЧЕЛОВЕК И НЕ ОДИН ГОД" - ну и что?! это ничего не меняет!
разработчик - Origin, известный своим девизом "мы создаём миры". из их продуктов - навскидку:
- Ultima - то ли 10, то ли 12 серий (это только для PC);
- Wing Commander - если считать все выпуски для PC и не считать примыкающего Privateer'а - 12 выпусков, подробности см. статью из "Навигатора игрового мира";
- 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.
Судья Ди не на форумі   Reply With Quote
Старий 28-12-2006, 13:23   #35
Судья Ди
Гигант мысли
 
Судья Ди's Avatar
 
Реєстрація: Dec 2006
Адреса: Порубежье
Повідомлення: 1,052
За замовчуванням

Цитата:
Повідомлення від U.S.A.
Чтобы ты знал: Делфи юзает те же АПИ только добавляет в них свои функции,
знаю.
Цитата:
и в принципе ничем не отличается от МФС (разве что средой разработки и методом компиляции)
тебя обманули. принципиальное отличие для пользователя делфи - что свеженарисованные панельки начинают жить прямо в процессе разработки. т.е. начинающему слепить что-ньдь просеькое типа ханойской башни - уже не несколько дней/недель, а несколько часов. во всяком случае, делфушника переучить на визуал-студь - почти нереально.
Судья Ди не на форумі   Reply With Quote
Старий 28-12-2006, 23:31   #36
U.S.A.
Читатель
 
Реєстрація: Dec 2006
Повідомлення: 71
За замовчуванням

Цитата:
Повідомлення від Судья Ди
знаю.тебя обманули. принципиальное отличие для пользователя делфи - что свеженарисованные панельки начинают жить прямо в процессе разработки. т.е. начинающему слепить что-ньдь просеькое типа ханойской башни - уже не несколько дней/недель, а несколько часов. во всяком случае, делфушника переучить на визуал-студь - почти нереально.
Согласен, так оно и есть. Вот только я говорю про принципиальные различия. Делфи компоненты - тоже класы, хоть и устроені они не так как МФЦ. Кроме того оболочка - не самое гланое отличие...
U.S.A. не на форумі   Reply With Quote
Старий 30-12-2006, 17:46   #37
K@STET
Писатель
 
K@STET's Avatar
 
Реєстрація: Jan 2006
Адреса: Урожай. 3-й люк справа...
Повідомлення: 188
Send a message via ICQ to K@STET Send a message via MSN to K@STET
За замовчуванням

Кто подскажет и покажет...
Вобщем пишу я курсач на Визуальных плюсах 6.0.
Как прочитать сначение из Реестра.
Знаю что нужно юзать функцию RegQueryValue. Но где какой параметр нужно ставить незнаю.
Первый то раздел, второй путь.... а дальше незнаю.
Помогите плз.
__________________
Мысль - это оргазм мозга, тот кто способен это испытать - получает истинное наслаждение, остальным приходится имитировать.
K@STET не на форумі   Reply With Quote
Старий 31-12-2006, 00:23   #38
Судья Ди
Гигант мысли
 
Судья Ди's Avatar
 
Реєстрація: Dec 2006
Адреса: Порубежье
Повідомлення: 1,052
За замовчуванням

Цитата:
Повідомлення від K@STET
на Визуальных плюсах 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
Судья Ди не на форумі   Reply With Quote
Старий 31-12-2006, 01:24   #39
K@STET
Писатель
 
K@STET's Avatar
 
Реєстрація: Jan 2006
Адреса: Урожай. 3-й люк справа...
Повідомлення: 188
Send a message via ICQ to K@STET Send a message via MSN to K@STET
За замовчуванням

Цитата:
Повідомлення від Судья Ди
MSDN пишет:
Спасибо... Но я нифига не понимаю...
Если кто-нибудь может привести пример как с нормальным кодом, то плз сделайте это.
__________________
Мысль - это оргазм мозга, тот кто способен это испытать - получает истинное наслаждение, остальным приходится имитировать.
K@STET не на форумі   Reply With Quote
Старий 31-12-2006, 02:04   #40
Di@m
Юзер
 
Di@m's Avatar
 
Реєстрація: Aug 2006
Повідомлення: 27
За замовчуванням

Цитата:
Повідомлення від K@STET
Спасибо... Но я нифига не понимаю...
Если кто-нибудь может привести пример как с нормальным кодом, то плз сделайте это.
Если не мож перевести зайди на rsdn.ru

Останній раз редагувалося Di@m; 19:49.
Di@m не на форумі   Reply With Quote
Відповідь


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Вкл.
Smilies are Вкл.
[IMG] code is Вкл.
HTML code is Викл.

Швидкий перехід


Поточний час: 02:20. Часовий пояс GMT +3.


Copyright ©2000 - 2024