Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Как перевести на билдер ?  (Прочитано 22817 раз)
0 Пользователей и 3 Гостей смотрят эту тему.
MOPO3
Ай да дэдушка! Вах...
Команда клуба

lt
Offline Offline
Пол: Мужской
Холадна аднака!


WWW
« : 24-08-2004 08:06 » 

Есть мфцэшные функции :
Код:
SetRegistryKey)_T)"BlaBlaBla"::;

и
Код:
LoadStdProfileSettings)0:;

Есть ли аналог под билдер ?
Записан

MCP, MCAD, MCTS:Win, MCTS:Web
Pu
Большой босс

ru
Offline 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
Ай да дэдушка! Вах...
Команда клуба

lt
Offline Offline
Пол: Мужской
Холадна аднака!


WWW
« Ответ #2 : 24-08-2004 08:52 » 

Pu,  спасибо. Я просто не знаю АПИ практически Улыбаюсь Вот и мучаюсь, имею мфцэшные сорцы примеров и на базе их пытаюсь наваять апликашку мне нужную Улыбаюсь А МФЦ, как я понял есть просто обёртка над АПИ ?
Записан

MCP, MCAD, MCTS:Win, MCTS:Web
USBLexus
Опытный

ru
Offline Offline
Пол: Мужской
Кот рыжий


« Ответ #3 : 24-08-2004 08:53 » new

Используй APIшные типа RegFlushKey RegCreateKey и т д
Записан

#define QUESTION(b) (2*b)||(!(2*b)) (c) William Shakespeare
Pu
Большой босс

ru
Offline Offline
78


« Ответ #4 : 24-08-2004 09:09 » 

MOPO3 мне понравилась фраза, не помню уж откуда, "программировать с MFC все равно что танцевать со слоном в посудной лавке"  Отлично .  Но вообще то все что делается с помощью мфц можно написать и на чистых апи. если б была возможность забраться в недра мфц , я уверен что каждая функция , каждый метод упирается в вызов апи функции. посему предположу что  твои подозрения не лишены основания    Вот такой я вот  Ага
Записан

Насколько я опытен? Достаточно, чтобы понимать, что дураков нельзя заставить думать по–другому, но недостаточно, чтобы отказаться от попыток это сделать.
(с) Артур Джонс
Кот
Гость
« Ответ #5 : 24-08-2004 09:20 » 

Pu,

Это ни подозрения это реальность
Записан
MOPO3
Ай да дэдушка! Вах...
Команда клуба

lt
Offline Offline
Пол: Мужской
Холадна аднака!


WWW
« Ответ #6 : 24-08-2004 11:27 » 

Pu, USBLexus,  простите за тупость, но я всё же не совсем догоняю что то. У функции МФЦ SetRegistryKey(_T("BlaBlaBla")); тока один параметр, а у этих АПИшных много. Вот я и не врубаюсь как это переписать  :oops:
Записан

MCP, MCAD, MCTS:Win, MCTS:Web
Pu
Большой босс

ru
Offline 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
Ай да дэдушка! Вах...
Команда клуба

lt
Offline Offline
Пол: Мужской
Холадна аднака!


WWW
« Ответ #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
Большой босс

ru
Offline Offline
78


« Ответ #9 : 24-08-2004 12:38 » 

1. что значит префикс _T ? - создает строку типа TCHAR. В примере который я использовал так было Улыбаюсь (те типа макрос)
2. мфц вероятно делает для себя IDшники ключей их впоследствии и пишет и читает. поэтому у ее фунций работы с реестром мало параметров, все маскируется и типа упрощается , а также засирается Улыбаюсь.  Аналог : в VB есть процедурка для работы с реестром аналог мфц и тоже пишет в ключ \Software\VB and VBA Program Settings . В апи ты можешь писать как угодно куда угодно и разделить права и властвовать.
Записан

Насколько я опытен? Достаточно, чтобы понимать, что дураков нельзя заставить думать по–другому, но недостаточно, чтобы отказаться от попыток это сделать.
(с) Артур Джонс
Pu
Большой босс

ru
Offline Offline
78


« Ответ #10 : 24-08-2004 12:41 » 

вспомнил
в VB функцейки называются GetSetting и SaveSetting
Записан

Насколько я опытен? Достаточно, чтобы понимать, что дураков нельзя заставить думать по–другому, но недостаточно, чтобы отказаться от попыток это сделать.
(с) Артур Джонс
MOPO3
Ай да дэдушка! Вах...
Команда клуба

lt
Offline Offline
Пол: Мужской
Холадна аднака!


WWW
« Ответ #11 : 24-08-2004 12:43 » 

Pu, понятно, хотя меня уже порядком задолбали эти разные типы TCHAR, LONG_PTR, SERVICE_STATUS, SC_HANDLE и так далее... мля, пока найдёш где нить этот грёбаный тайпдеф или дефайн где это объявлено   Ха-ха-ха
Записан

MCP, MCAD, MCTS:Win, MCTS:Web
Pu
Большой босс

ru
Offline Offline
78


« Ответ #12 : 24-08-2004 12:50 » 

Цитата: Pu
1. что значит префикс _T ? - создает строку типа TCHAR. В примере который я использовал так было Улыбаюсь (те типа макрос) Еще вспомнил есть такой OLESTR(s) я думаю работает по тому же принципу.
2. мфц вероятно делает для себя IDшники ключей их впоследствии и пишет и читает. поэтому у ее фунций работы с реестром мало параметров, все маскируется и типа упрощается , а также засирается Улыбаюсь.  Аналог : в VB есть процедурка для работы с реестром аналог мфц и тоже пишет в ключ \Software\VB and VBA Program Settings . В апи ты можешь писать как угодно куда угодно и разделить права и властвовать.
Записан

Насколько я опытен? Достаточно, чтобы понимать, что дураков нельзя заставить думать по–другому, но недостаточно, чтобы отказаться от попыток это сделать.
(с) Артур Джонс
npak
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #13 : 24-08-2004 12:50 » 

MOPO3, на сайте есть книга Петцольда "Программирования для Windows" (на английском).  Во второй главе подробно объясняется, зачем нужны макросы _T и TEXT.  Если лень читать, могу объяснить в этой теме.
Записан

UniTesK -- индустриальная технология надежного тестирования.

http://www.unitesk.com/ru/
Pu
Большой босс

ru
Offline Offline
78


« Ответ #14 : 24-08-2004 12:52 » 

чтойто глюкнуло Улыбаюсь
Записан

Насколько я опытен? Достаточно, чтобы понимать, что дураков нельзя заставить думать по–другому, но недостаточно, чтобы отказаться от попыток это сделать.
(с) Артур Джонс
MOPO3
Ай да дэдушка! Вах...
Команда клуба

lt
Offline Offline
Пол: Мужской
Холадна аднака!


WWW
« Ответ #15 : 24-08-2004 13:01 » 

Цитата: npak
MOPO3, на сайте есть книга Петцольда "Программирования для Windows" (на английском).  Во второй главе подробно объясняется, зачем нужны макросы _T и TEXT.  Если лень читать, могу объяснить в этой теме.


действительно лень, а вернее нет времени. будь добр, объясни тут Улыбаюсь
Записан

MCP, MCAD, MCTS:Win, MCTS:Web
Pu
Большой босс

ru
Offline Offline
78


« Ответ #16 : 24-08-2004 13:12 » 

npak, да да объясни.  Ага
Записан

Насколько я опытен? Достаточно, чтобы понимать, что дураков нельзя заставить думать по–другому, но недостаточно, чтобы отказаться от попыток это сделать.
(с) Артур Джонс
npak
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #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-битные, дают полный бред.
Записан

UniTesK -- индустриальная технология надежного тестирования.

http://www.unitesk.com/ru/
MOPO3
Ай да дэдушка! Вах...
Команда клуба

lt
Offline Offline
Пол: Мужской
Холадна аднака!


WWW
« Ответ #18 : 24-08-2004 13:38 » 

npak, понятно, спасибо.
Записан

MCP, MCAD, MCTS:Win, MCTS:Web
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines