| 
			| 
					
						| MOPO3 
								Ай да дэдушка! Вах...Команда клуба    Offline 
								Пол:   
								Холадна аднака!
								
								
								
								
								
								   | 
								|  | «  : 24-08-2004 08:06 »  |  | 
 
 Есть мфцэшные функции : SetRegistryKey)_T)"BlaBlaBla"::;и LoadStdProfileSettings)0:;Есть ли аналог под билдер ? |  
						| 
								|  |  
								|  |  Записан | 
 
 MCP, MCAD, MCTS:Win, MCTS:Web |  |  | 
	| 
			| 
					
						| Pu 
								Большой босс    Offline 
								78
								
								
								
								
								
							 | 
								|  | « Ответ #1 : 24-08-2004 08:48 »  |  | 
 
 MOPO3, не понял - зачем тебе аналоги мфцшных функций?     пользуйся апишными  RegSetValueEx и тд итд в msdn - ms-help://MS.VSCC.2003/MS.MSDNQTR.2003APR.1033/sysinfo/base/registry_functions.htm |  
						| 
								|  |  
								|  |  Записан | 
 
 Насколько я опытен? Достаточно, чтобы понимать, что дураков нельзя заставить думать по–другому, но недостаточно, чтобы отказаться от попыток это сделать.(с) Артур Джонс
 |  |  | 
	| 
			| 
					
						| MOPO3 
								Ай да дэдушка! Вах...Команда клуба    Offline 
								Пол:   
								Холадна аднака!
								
								
								
								
								
								   | 
								|  | « Ответ #2 : 24-08-2004 08:52 »  |  | 
 
 Pu,  спасибо. Я просто не знаю АПИ практически    Вот и мучаюсь, имею мфцэшные сорцы примеров и на базе их пытаюсь наваять апликашку мне нужную    А МФЦ, как я понял есть просто обёртка над АПИ ? |  
						| 
								|  |  
								|  |  Записан | 
 
 MCP, MCAD, MCTS:Win, MCTS:Web |  |  | 
	| 
			| 
					
						| USBLexus 
								Опытный    Offline 
								Пол:    
								Кот рыжий
								
								
								
								
								
							 | 
								|  | « Ответ #3 : 24-08-2004 08:53 »  |  | 
 
 Используй APIшные типа RegFlushKey RegCreateKey и т д |  
						| 
								|  |  
								|  |  Записан | 
 
 #define QUESTION(b) (2*b)||(!(2*b)) (c) William Shakespeare |  |  | 
	| 
			| 
					
						| Pu 
								Большой босс    Offline 
								78
								
								
								
								
								
							 | 
								|  | « Ответ #4 : 24-08-2004 09:09 »  |  | 
 
 MOPO3 мне понравилась фраза, не помню уж откуда, "программировать с MFC все равно что танцевать со слоном в посудной лавке"     .  Но вообще то все что делается с помощью мфц можно написать и на чистых апи. если б была возможность забраться в недра мфц , я уверен что каждая функция , каждый метод упирается в вызов апи функции. посему предположу что  твои подозрения не лишены основания       |  
						| 
								|  |  
								|  |  Записан | 
 
 Насколько я опытен? Достаточно, чтобы понимать, что дураков нельзя заставить думать по–другому, но недостаточно, чтобы отказаться от попыток это сделать.(с) Артур Джонс
 |  |  | 
	| 
			| 
					
						| Кот 
								Гость
 | 
								|  | « Ответ #5 : 24-08-2004 09:20 »  |  | 
 
 Pu, 
 Это ни подозрения это реальность
 |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| MOPO3 
								Ай да дэдушка! Вах...Команда клуба    Offline 
								Пол:   
								Холадна аднака!
								
								
								
								
								
								   | 
								|  | « Ответ #6 : 24-08-2004 11:27 »  |  | 
 
 Pu, USBLexus,  простите за тупость, но я всё же не совсем догоняю что то. У функции МФЦ SetRegistryKey(_T("BlaBlaBla")); тока один параметр, а у этих АПИшных много. Вот я и не врубаюсь как это переписать  :oops: |  
						| 
								|  |  
								|  |  Записан | 
 
 MCP, MCAD, MCTS:Win, MCTS:Web |  |  | 
	| 
			| 
					
						| Pu 
								Большой босс    Offline 
								78
								
								
								
								
								
							 | 
								|  | « Ответ #7 : 24-08-2004 11:41 »  |  | 
 
 вот тебе примерчик как работать с энтими фунциями HRESULT hr = S_OK; HKEY hKey; if ( S_OK != RegOpenKeyEx( HKEY_CURRENT_USER,  _T("SOFTWARE\\melkosoft\\"), 0, KEY_ALL_ACCESS, &hKey) )        if ( S_OK != RegCreateKey( HKEY_CURRENT_USER, _T("SOFTWARE\\melkosoft\\"), &hKey) )        {          MessageBox("Ошибка при работе с реестром!", "Ошибка", MB_OK);          return 1;       }    }    RegSetValueEx(hKey, _T("Item1"), 0, REG_DWORD, (BYTE*)&m_any1, sizeof(DWORD) );  RegCloseKey(hKey); ну и тд    |  
						| 
								|  |  
								|  |  Записан | 
 
 Насколько я опытен? Достаточно, чтобы понимать, что дураков нельзя заставить думать по–другому, но недостаточно, чтобы отказаться от попыток это сделать.(с) Артур Джонс
 |  |  | 
	| 
			| 
					
						| MOPO3 
								Ай да дэдушка! Вах...Команда клуба    Offline 
								Пол:   
								Холадна аднака!
								
								
								
								
								
								   | 
								|  | « Ответ #8 : 24-08-2004 12:20 »  |  | 
 
 Pu, спасибо за примеры.Ещё один вопрос :
 После отработки проги с использованием SetRegistryKey(_T("BlaBlaBla")); обнаружил запись в реестре вот тут :
 HKEY_USERS\S-1-5-21-2078894507-92143966-638672422-2712\Software\BlaBlaBla . Эта функция всегда в эту ветку пишет и мне её и использовать ?
 
 И ещё :
 if ( S_OK != RegOpenKeyEx( HKEY_CURRENT_USER, _T("SOFTWARE\\melkosoft\\"), 0, KEY_ALL_ACCESS, &hKey) )
 
 что значит префикс  _T ?
 |  
						| 
								|  |  
								|  |  Записан | 
 
 MCP, MCAD, MCTS:Win, MCTS:Web |  |  | 
	| 
			| 
					
						| Pu 
								Большой босс    Offline 
								78
								
								
								
								
								
							 | 
								|  | « Ответ #9 : 24-08-2004 12:38 »  |  | 
 
 1. что значит префикс _T ? - создает строку типа TCHAR. В примере который я использовал так было    (те типа макрос) 2. мфц вероятно делает для себя IDшники ключей их впоследствии и пишет и читает. поэтому у ее фунций работы с реестром мало параметров, все маскируется и типа упрощается , а также засирается   .  Аналог : в VB есть процедурка для работы с реестром аналог мфц и тоже пишет в ключ \Software\VB and VBA Program Settings . В апи ты можешь писать как угодно куда угодно и разделить права и властвовать. |  
						| 
								|  |  
								|  |  Записан | 
 
 Насколько я опытен? Достаточно, чтобы понимать, что дураков нельзя заставить думать по–другому, но недостаточно, чтобы отказаться от попыток это сделать.(с) Артур Джонс
 |  |  | 
	| 
			| 
					
						| Pu 
								Большой босс    Offline 
								78
								
								
								
								
								
							 | 
								|  | « Ответ #10 : 24-08-2004 12:41 »  |  | 
 
 вспомнилв VB функцейки называются GetSetting и SaveSetting
 |  
						| 
								|  |  
								|  |  Записан | 
 
 Насколько я опытен? Достаточно, чтобы понимать, что дураков нельзя заставить думать по–другому, но недостаточно, чтобы отказаться от попыток это сделать.(с) Артур Джонс
 |  |  | 
	| 
			| 
					
						| MOPO3 
								Ай да дэдушка! Вах...Команда клуба    Offline 
								Пол:   
								Холадна аднака!
								
								
								
								
								
								   | 
								|  | « Ответ #11 : 24-08-2004 12:43 »  |  | 
 
 Pu, понятно, хотя меня уже порядком задолбали эти разные типы TCHAR, LONG_PTR, SERVICE_STATUS, SC_HANDLE и так далее... мля, пока найдёш где нить этот грёбаный тайпдеф или дефайн где это объявлено    |  
						| 
								|  |  
								|  |  Записан | 
 
 MCP, MCAD, MCTS:Win, MCTS:Web |  |  | 
	| 
			| 
					
						| Pu 
								Большой босс    Offline 
								78
								
								
								
								
								
							 | 
								|  | « Ответ #12 : 24-08-2004 12:50 »  |  | 
 
 1. что значит префикс _T ? - создает строку типа TCHAR. В примере который я использовал так было    (те типа макрос) Еще вспомнил есть такой OLESTR(s) я думаю работает по тому же принципу. 2. мфц вероятно делает для себя IDшники ключей их впоследствии и пишет и читает. поэтому у ее фунций работы с реестром мало параметров, все маскируется и типа упрощается , а также засирается   .  Аналог : в VB есть процедурка для работы с реестром аналог мфц и тоже пишет в ключ \Software\VB and VBA Program Settings . В апи ты можешь писать как угодно куда угодно и разделить права и властвовать. |  
						| 
								|  |  
								|  |  Записан | 
 
 Насколько я опытен? Достаточно, чтобы понимать, что дураков нельзя заставить думать по–другому, но недостаточно, чтобы отказаться от попыток это сделать.(с) Артур Джонс
 |  |  | 
	| 
			| 
					
						| npak | 
								|  | « Ответ #13 : 24-08-2004 12:50 »  |  | 
 
 MOPO3, на сайте есть книга Петцольда "Программирования для Windows" (на английском).  Во второй главе подробно объясняется, зачем нужны макросы _T и TEXT.  Если лень читать, могу объяснить в этой теме. |  
						| 
								|  |  
								|  |  Записан | 
 
 |  |  | 
	| 
			| 
					
						| Pu 
								Большой босс    Offline 
								78
								
								
								
								
								
							 | 
								|  | « Ответ #14 : 24-08-2004 12:52 »  |  | 
 
 чтойто глюкнуло   |  
						| 
								|  |  
								|  |  Записан | 
 
 Насколько я опытен? Достаточно, чтобы понимать, что дураков нельзя заставить думать по–другому, но недостаточно, чтобы отказаться от попыток это сделать.(с) Артур Джонс
 |  |  | 
	| 
			| 
					
						| MOPO3 
								Ай да дэдушка! Вах...Команда клуба    Offline 
								Пол:   
								Холадна аднака!
								
								
								
								
								
								   | 
								|  | « Ответ #15 : 24-08-2004 13:01 »  |  | 
 
 MOPO3, на сайте есть книга Петцольда "Программирования для Windows" (на английском).  Во второй главе подробно объясняется, зачем нужны макросы _T и TEXT.  Если лень читать, могу объяснить в этой теме. действительно лень, а вернее нет времени. будь добр, объясни тут   |  
						| 
								|  |  
								|  |  Записан | 
 
 MCP, MCAD, MCTS:Win, MCTS:Web |  |  | 
	| 
			| 
					
						| Pu 
								Большой босс    Offline 
								78
								
								
								
								
								
							 | 
								|  | « Ответ #16 : 24-08-2004 13:12 »  |  | 
 
 npak, да да объясни.    |  
						| 
								|  |  
								|  |  Записан | 
 
 Насколько я опытен? Достаточно, чтобы понимать, что дураков нельзя заставить думать по–другому, но недостаточно, чтобы отказаться от попыток это сделать.(с) Артур Джонс
 |  |  | 
	| 
			| 
					
						| npak | 
								|  | « Ответ #17 :  24-08-2004 13:23 »   |  | 
 
 MOPO3, 
 как ты, наверное, знаешь, таблицы размером 256 символов уже давно не хвататет для многоязыковой поддержки.  Поэтому к языку С добавили поддержку "широких" символов -- двухбайтных.  Строки двухбайтных символов представляются в исходниках как L"abc".  В качестве кодировки "широких" символов используется стандарт 16-битного Unicode
 
 макрос TEXT("abc") раскрывается в "abc", если файл компилируется без поддержки Unicode, и как L"abc", если файл транслируется с поддержкой Unicode.  Использование такого макроса позволяет легко переносить программы с ASCII на Unicode.
 
 Большинство функций Win32 на самом деле макросы.  Например, RegOpenKeyEx раскрывается в RegOpenKeyExA при отключенном Unicode и в RegOpenKeyExW при включенном Unicode.  Функции с суффиксом A принимают на вход строки 8-битных символов, функции с суффисом W принимают на вход строки 16-битных символов.
 
 К сожалению, строковые литералы "abcd" компилятором всегда интерпретируются как 8-битные строки.  Поэтому строковые литералы необходимо оборачивать в макросы, чтобы при компиляции с поддержкой Unicode строковые литералы получали префикс L:  "abc" -> L"abc".  Если забыть поставить TEXT(), то при включенном Unicode скомпилируется всё нормально, но во время исполнения полезут ошибки, ведь функция ожидает получить строку 16-битных символов, а 8-битные строки, если их интерпретировать как 16-битные, дают полный бред.
 |  
						| 
								|  |  
								|  |  Записан | 
 
 |  |  | 
	| 
			| 
					
						| MOPO3 
								Ай да дэдушка! Вах...Команда клуба    Offline 
								Пол:   
								Холадна аднака!
								
								
								
								
								
								   | 
								|  | « Ответ #18 : 24-08-2004 13:38 »  |  | 
 
 npak, понятно, спасибо. |  
						| 
								|  |  
								|  |  Записан | 
 
 MCP, MCAD, MCTS:Win, MCTS:Web |  |  | 
	|  |