Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по программированию на C/С++

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322

Открыть новую тему     Написать ответ в эту тему

Crazy_Shrike



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Вопросы по программированию на C/С++

 
  • Справочники, книги
  • Выбор IDE (среды программирования)
     
    Постарайтесь дать как можно больше информации о возникшей проблеме - это в конце концов в ваших же интересах чтобы вам помогли.

    Решения конкретных задач собираются и обсуждаются в теме Задачи по C/С++ .

    Прежде чем просить помощи в задании...
    Если позарез надо и вы даже готовы заплатить

    Как правильно задавать вопросы, если вы хотите получить ответ.

    Полезные ссылки:
    C++(eng)

  • Всего записей: 241 | Зарегистр. 25-03-2004 | Отправлено: 13:37 06-05-2004 | Исправлено: AZJIO, 19:45 12-05-2014
    ne_viens

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    От ntdll.dll
     
    RtlUlonglongByteSwap proc
     
    arg_0           = dword ptr  4
    arg_4           = dword ptr  8
     
                    mov     edx, [esp+arg_4]
                    mov     eax, [esp+arg_0]
                    bswap   edx
                    bswap   eax
                    mov     ecx, eax
                    mov     eax, edx
                    mov     edx, ecx
                    retn
    RtlUlonglongByteSwap endp
     

    Всего записей: 1530 | Зарегистр. 01-11-2004 | Отправлено: 00:25 08-03-2013
    bomzzz



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    да чета я ступил, надо было из интересу расковырять нтдлл. вроде хп вообще с 386 процессором не совместима.
    а в каком порядке пихать это дело из реестра? чета я не могу найти ни одного значения в реестре чтоб проверить
     
    Добавлено:
    REG_NONE - а че с этим делать?
     
    Добавлено:

    Цитата:
    REG_QWORD. Значения длиной в четыре слова (64 бита). Этот тип похож на REG_DWORD, но содержит 64 бита вместо 32. Единственная версия Windows ХР, которая поддерживает этот тип - это Windows ХР 64-Bit Edition (64-разрядная версия). Вы можете просматривать и редактировать эти значения в десятичной или шестнадца-теричной форме. Примером REG_QWORD является значение 0xFE02000110010001.

    http://www.compremont.org/reestr-microsoft-windows-khr-spravochnik-professionala/reestr-microsoft-windows-khr-spravochnik-professionala-str19.html
    может вранье но радует
     
    Добавлено:
    разобрался. тип none и qword отображают как бинари дату. а reg_link это юникодная строка ссылка. а хп неподдерживает только биг ендиан qword

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 00:32 08-03-2013
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    bomzzz
    Да, когда я искал инфу по типам данных реестра, эта страница была единственной, которая более подробна раскрывала типы. Я даже на основе сделал страницу, с краткой информацией о типе возвращаемого значения.

    Всего записей: 4411 | Зарегистр. 03-05-2006 | Отправлено: 20:05 08-03-2013 | Исправлено: AZJIO, 20:05 08-03-2013
    bomzzz



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    да палесная страничка. жалко не нагуглилась сразу. у меня новый головняк - гадаю как разбор команды сделать - надо решить как в reg add выковыривать /ve. в cmd можно набивать все в довольно произвольном порядке засоряя все лишними пробелами, а аглоритм в последствии должен поддерживать все команды cmd, а их немало. между делом color сделал
     
    в ntdll оказывается много полезных функций сидит которые msvcrt заменяют

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 22:20 08-03-2013 | Исправлено: bomzzz, 22:21 08-03-2013
    ne_viens

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Парсер аргументов, чтоли?
    Возьми stdargv.c из "C:\Program Files\Microsoft Visual Studio 9.0\VC\crt\src"
    Чуть поправить надо будет, чтоб зажил самостoятельно.
     
    Жалко, что sprintf() в ntdll.dll такой-же корявый как и wsprintf() - без "%f".

    Всего записей: 1530 | Зарегистр. 01-11-2004 | Отправлено: 23:20 08-03-2013 | Исправлено: ne_viens, 23:26 08-03-2013
    bomzzz



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ne_viens
    не обязательно готовый использовать. еще плохо себе все дерево команд представляю. вот попробовал что то поделать на эту тему. это вырезает параметр /V. еще надо перевод сделать регистра букв. и с кавычками разобраться. для командного параметра я давно себе быструый кусочек кода сделал, который все случаи учитывает, включая запуск из реестра - там лишний пробел добавляется

    Цитата:
    .386
     
    .model flat, stdcall  
    option casemap :none  
     
    include \MASM32\INCLUDE\windows.inc
    include \MASM32\INCLUDE\user32.inc
    include \MASM32\INCLUDE\kernel32.inc
    include \MASM32\INCLUDE\ntdll.inc
    include \masm32\macros\Strings.mac
     
    .data
    mestitle    dw "B","o","m","z",0
    form        dw "%","u", 0
     
    TW0 "   reg add \=\\Registry\\Machine\\Disk\= /V Path /VE", commandstr
    .data?
    buffer        db 512 dup(?)
    string        db 512 dup(?)
     
    .code
    start:
    invoke MessageBoxW,0,addr commandstr,ADDR mestitle,MB_ICONASTERISK
    ;invoke towlower, addr commandstr
    lea ebx, commandstr
    invoke wcsstr, addr commandstr, $CTW0(" /V ")
    add eax, 8
    mov ebx, eax
    invoke wcsrchr, ebx, " "
    sub eax, ebx
    shr eax, 1
    invoke wcsncpy, addr buffer, ebx, eax
    invoke MessageBoxW,0,addr buffer,ADDR mestitle,MB_ICONASTERISK
    invoke ExitProcess,0
    end start

    тут в начале до фига всего такого

    Цитата:
    wcstoul PROTO C :VARARG
    wcstombs PROTO C :VARARG
    wcstol PROTO C :VARARG
    wcsstr PROTO C :VARARG
    wcsspn PROTO C :VARARG
    wcsrchr PROTO C :VARARG
    wcspbrk PROTO C :VARARG
    wcsncpy PROTO C :VARARG
    wcsncmp PROTO C :VARARG
    wcsncat PROTO C :VARARG
    wcslen PROTO C :VARARG
    wcscspn PROTO C :VARARG
    wcscpy PROTO C :VARARG
    wcscmp PROTO C :VARARG
    wcschr PROTO C :VARARG
    wcscat PROTO C :VARARG
    vsprintf PROTO C :VARARG
    vDbgPrintExWithPrefix PROTO STDCALL WORD,:DWORD,:DWORD,:DWORD,:DWORD
    vDbgPrintEx PROTO STDCALL WORD,:DWORD,:DWORD,:DWORD
    towupper PROTO C :VARARG
    towlower PROTO C :VARARG
    toupper PROTO C :VARARG
    tolower PROTO C :VARARG
    tan PROTO C :VARARG
    swprintf PROTO C :VARARG
    strtoul PROTO C :VARARG
    strtol PROTO C :VARARG
    strstr PROTO C :VARARG
    strspn PROTO C :VARARG
    strrchr PROTO C :VARARG
    strpbrk PROTO C :VARARG
    strncpy PROTO C :VARARG
    strncmp PROTO C :VARARG
    strncat PROTO C :VARARG
    strlen PROTO C :VARARG
    strcspn PROTO C :VARARG
    strcpy PROTO C :VARARG
    strcmp PROTO C :VARARG
    strchr PROTO C :VARARG
    strcat PROTO C :VARARG
    sscanf PROTO C :VARARG
    sqrt PROTO C :VARARG
    sprintf PROTO C :VARARG
    sin PROTO C :VARARG
    qsort PROTO C :VARARG
    pow PROTO C :VARARG
    memset PROTO C :VARARG
    memmove PROTO C :VARARG
    memcpy PROTO C :VARARG
    memcmp PROTO C :VARARG
    memchr PROTO C :VARARG
    mbstowcs PROTO C :VARARG
    log PROTO C :VARARG
    labs PROTO C :VARARG
    isxdigit PROTO C :VARARG
    iswxdigit PROTO C :VARARG
    iswspace PROTO C :VARARG
    iswlower PROTO C :VARARG
    iswdigit PROTO C :VARARG
    iswctype PROTO C :VARARG
    iswalpha PROTO C :VARARG
    isupper PROTO C :VARARG
    isspace PROTO C :VARARG
    ispunct PROTO C :VARARG
    isprint PROTO C :VARARG
    islower PROTO C :VARARG
    isgraph PROTO C :VARARG
    isdigit PROTO C :VARARG
    iscntrl PROTO C :VARARG
    isalpha PROTO C :VARARG
    isalnum PROTO C :VARARG
    floor PROTO C :VARARG
    _fabs PROTO C :VARARG
    cos PROTO C :VARARG
    ceil PROTO C :VARARG
    bsearch PROTO C :VARARG
    atol PROTO C :VARARG
    atoi PROTO C :VARARG
    atan PROTO C :VARARG
    abs PROTO C :VARARG
     

     
    Добавлено:
    а не знаешь где экранный буфер, можно выводить на экран минуя и ntdll, и ntoskrnl? или надо видео драйверу какие то стандартные команды передавать? чтоб курсор сделать, а может вывод на экран оптимизировать.

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 05:06 09-03-2013 | Исправлено: bomzzz, 05:10 09-03-2013
    dimon0476



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Кто знает:
    В МГТУ имени Н.Э.Баумана читают отличные лекции по программированию и на Си в том числе. В инете они есть. Кто знает, где скачать? Дайте линк.

    ----------
    "Мы часто воспринимаем полутораумных людей как полоумных, потому что нам доступна лишь треть их ума."

    Всего записей: 1641 | Зарегистр. 16-04-2012 | Отправлено: 17:53 09-03-2013
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    dimon0476
    Лекции тоже чудес не делают. Попробуй AutoIt3, в 10 раз легче. Особенно если рядом нет специалистов, которые могут подсказать.
     
    Обновил справку, начал делать описание функций в стиле AutoIt3. Строковые для примера уже поменял, частично математических и функции с приставкой "is".

    Всего записей: 4411 | Зарегистр. 03-05-2006 | Отправлено: 19:34 09-03-2013
    dimon0476



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AZJIO, а он существует русский? И где?

    ----------
    "Мы часто воспринимаем полутораумных людей как полоумных, потому что нам доступна лишь треть их ума."

    Всего записей: 1641 | Зарегистр. 16-04-2012 | Отправлено: 20:41 09-03-2013
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    dimon0476
    Да, на русском справка, вот тема, смотри в шапке. А вообще скачай комплект отсюда, но справку обнови до последней версии.

    Всего записей: 4411 | Зарегистр. 03-05-2006 | Отправлено: 22:04 09-03-2013 | Исправлено: AZJIO, 22:07 09-03-2013
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    int fgetpos(FILE *stream, fpos_t *position);
    Как правильно термин определяющий параметр "FILE *stream"? Файловый дескриптор? Или кратко просто дескриптор. Хотя в справке нашёл термин "указатель файла".
    И ещё, на сколько я понимаю обращение к файловой системе происходит на уровне системы, к примеру через WinAPI, как в данном случае работают функции, не зная о текущей системе?

    Всего записей: 4411 | Зарегистр. 03-05-2006 | Отправлено: 15:36 10-03-2013 | Исправлено: AZJIO, 15:40 10-03-2013
    kotlomoy



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AZJIO

    Цитата:
    Как правильно термин определяющий параметр "FILE *stream"? Файловый дескриптор? Или кратко просто дескриптор. Хотя в справке нашёл термин "указатель файла".

    Ну правильно, это же указатель, прежде всего. В данном случае указатель на файловый дескриптор.

    Цитата:
    И ещё, на сколько я понимаю обращение к файловой системе происходит на уровне системы, к примеру через WinAPI, как в данном случае работают функции, не зная о текущей системе?

    Подозреваю, что функции знают о текущей системе.

    Всего записей: 172 | Зарегистр. 06-03-2008 | Отправлено: 16:36 10-03-2013
    vlary



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AZJIO

    Цитата:
    как в данном случае работают функции, не зная о текущей системе?
    Это программист ничего не обязан знать о текущей системе, пользуясь стандартными функциями типа  fopen, read, write. А соответствующие библиотеки, типа msvcr80.dll, о ней все знают, и преобразуют эти функции в соответствующие вызовы WinAPI.

    ----------
    Заслуженный SCOтовод, почетный SUNтехник и любитель Кошек

    Всего записей: 17278 | Зарегистр. 13-06-2007 | Отправлено: 16:57 10-03-2013
    bomzzz



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    указатель файла скорее всего имеется ввиду указатель на место откуда будет произведено следующее считывание заданой порции.
     
    только ядреные функции по моему склонны использовать указатель на хендл при его получении, все функции оболочки возвращают его (в регистре eax) при открытии файла и прочего, а при использовании он запихивается в стек целочисленно

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 19:14 10-03-2013 | Исправлено: bomzzz, 19:17 10-03-2013
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    bomzzz

    Цитата:
    а при использовании он запихивается в стек целочисленно
    Не знаю что куда запихивается, но по опыту работы с AutoIt3, который использует обёртки этих же функций понятно, что просто выделяются ресурсы под механизм работы с конкретным файлом, некий объект содержащий позицию внутреннего указателя в файле, буфер, который уменьшает количество обращений к файлу и т.д.
    Если сделать вывод этого указателя в AutoIt3, то ничего особенного он не содержит, просто порядковый номер. В С++ я ещё не тестил, но в справку пытаюсь указать правильные термины.

    Цитата:
    указатель файла скорее всего имеется ввиду указатель на место откуда будет произведено следующее считывание заданой порции.  
    Это другой указатель используемый в функцийх fseek, ftell. Правда при этом ещё не совсем понял отличие от fgetpos, fsetpos.
     
    vlary

    Цитата:
    А соответствующие библиотеки, типа msvcr80.dll, о ней все знают
    В теории я представлял что ЯП работает только с памятью и процессором, ведь неизвестно какая OS, линух, мак. А функции базовые.

    Всего записей: 4411 | Зарегистр. 03-05-2006 | Отправлено: 20:54 10-03-2013
    kotlomoy



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AZJIO

    Цитата:
    В теории я представлял что ЯП работает только с памятью и процессором, ведь неизвестно какая OS, линух, мак. А функции базовые.

    Если посмотришь список ключевых слов C/C++, то не увидишь там никаких базовых функций, потому что их нет.
    Есть стандартные библиотеки функций/классов. Реализация этих библиотек на каждой системе своя. К языку программирования это не имеет отношения.

    Всего записей: 172 | Зарегистр. 06-03-2008 | Отправлено: 01:02 11-03-2013
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ещё одна справка (7 Мб) ссылка1, ссылка2

    Всего записей: 4411 | Зарегистр. 03-05-2006 | Отправлено: 13:08 13-03-2013 | Исправлено: AZJIO, 16:20 13-03-2013
    bomzzz



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    подскажите как создать ключ реестра по умолчанию - что туда записать? что то не соображу, вообще ничего что ли?

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 00:48 14-03-2013 | Исправлено: bomzzz, 07:13 14-03-2013
    bomzzz



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    http://msdn.microsoft.com/ru-RU/library/windows/hardware/ff539509%28v=vs.85%29.aspx
    http://msdn.microsoft.com/ru-RU/library/windows/hardware/ff564838%28v=vs.85%29.aspx
    http://msdn.microsoft.com/en-us/library/windows/hardware/ff567788%28v=vs.85%29.aspx
    а с помощью вот этого можно в нативном режиме управлять экраном? а ни у кого примеров на эту тему нет?

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 07:39 14-03-2013
    ne_viens

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    подскажите как создать ключ реестра по умолчанию - что туда записать? что то не соображу, вообще ничего что ли?  

     
    Ключ или значение?
    Если первое, то default key несуществует, если второе, то просто NULL вместо названия пишем. Default value оставили для обратной совместимости с Win 3.0

    Всего записей: 1530 | Зарегистр. 01-11-2004 | Отправлено: 12:00 14-03-2013
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322

    Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по программированию на C/С++


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru