Страница 228 из 386
Re: Вопросы по С/С++ (СИ)
Добавлено: Пн окт 19, 2015 13:58:46
Siarzhuk
kalobyte писал(а):я загуглил и там пишут, что надо в разделе с++ выбрать ключ /MT
Для VS 2008 статическая версия рантайма выбирается так: свойства проекта -> Configuration Properties->C/C++->Code Generation->Runtime Library->Multi-threaded /MT
kalobyte писал(а): LANG_RUSSIAN Russia (RU) 0x01 SUBLANG_RUSSIAN_RUSSIA
1049 это 0х0419
где взять магическое число для казахской раскладки?
в хидере WinNT.h Platform SDK:
Код: Выделить всё
#define LANG_KANNADA 0x4b
#define LANG_KASHMIRI 0x60
#define LANG_KAZAK 0x3f
[...]
#define LANG_RUSSIAN 0x19
[...]
#define SUBLANG_KAZAK_KAZAKHSTAN 0x01 // Kazakh (Kazakhstan) 0x043f kk-KZ
Код: Выделить всё
GetKeyboardLayout function. [...] The low word contains a Language Identifier for the input language [...] A language identifier is constructed using the MAKELANGID macro. The following illustration shows the format of the bits in a language identifier.
+-------------------------+-------------------------+
| SubLanguage ID | Primary Language ID |
+-------------------------+-------------------------+
15 10 9 0 bit
Re: Вопросы по С/С++ (СИ)
Добавлено: Вт окт 20, 2015 05:21:43
pokk
Добрый день, что-то поднадоело мне в iar предупреждение:
Код: Выделить всё
Warning[Pa050]: non-native end of line sequence detected (this diagnostic is only issued once) .........
Я так понимаю iar ругается из за невидимого символа что типа не так на следующую строку перехожу, только вот какая ему разница ?
Re: Вопросы по С/С++ (СИ)
Добавлено: Вт окт 20, 2015 07:02:00
Chip115
WiseLord писал(а):Обнуляет ячейку в памяти по этому адресу.
Можно ли написать так (исходная запись *((volatile unsigned char *) (0x77200480)) = 0x00;)
Код: Выделить всё
volatile unsigned char * 0x77200480 = 0x00;
Зачем нужна первая звездочка?
Re: Вопросы по С/С++ (СИ)
Добавлено: Вт окт 20, 2015 07:06:00
GARMIN
Первая звёздочка показывает, что по этому адресу лежит указатель на ячейку памяти, которую ты обнуляешь.
Re: Вопросы по С/С++ (СИ)
Добавлено: Вт окт 20, 2015 08:24:50
Siarzhuk
Chip115 писал(а):Код: Выделить всё
volatile unsigned char * 0x77200480 = 0x00;
Нельзя. Вы пытаетесь объявить указатель на unsigned char с именем 0x77200480 и инициализировать его в 0. Имена переменных, начинающиеся цифрами, запрещены - компилятор осмотрит вас с сочуствующим недоумением.
0x77200480 - просто числовой литерал;
(unsigned char*)0x77200480 - приведение типа - результат этой операции - указатель, который уже можно в оном качестве скормить компилятору. Указывает на область памяти по соответствующему адресу;
*(unsigned char*)0x77200480 - разыменование указателя - получение доступа на чтение из (если справа) либо на запись в (если слева) область/области памяти на которую указывает указатель. Тип указателя определяет размер модифицируемой памяти - в данном случае 1 байт.
Re: Вопросы по С/С++ (СИ)
Добавлено: Вт окт 20, 2015 08:32:53
Siarzhuk
pokk писал(а):Код: Выделить всё
Warning[Pa050]: non-native end of line sequence detected (this diagnostic is only issued once) .........
Стандартный EOL для Windows - CR/LF, у вас-же, вероятно, исходные тексты содержат строчки, добавленые в Unix/Mac редакторах, либо полностью используют LF в качестве концов строк. Решение - открыть тексты в редакторе, менее дубовом чем Notepad и сохранить с родными для хост-системы концами строк. ЕМНИП Notepad++ такое может, сам пользуюсь более мне привычным vim-ом.
Re: Вопросы по С/С++ (СИ)
Добавлено: Вт окт 20, 2015 08:37:07
Chip115
Siarzhuk писал(а):Chip115 писал(а):Код: Выделить всё
volatile unsigned char * 0x77200480 = 0x00;
Нельзя. Вы пытаетесь объявить указатель на unsigned char с именем 0x77200480 и инициализировать его в 0. Имена переменных, начинающиеся цифрами, запрещены - компилятор осмотрит вас с сочуствующим недоумением.
0x77200480 - просто числовой литерал;
(unsigned char*)0x77200480 - приведение типа - результат этой операции - указатель, который уже можно в оном качестве скормить компилятору. Указывает на область памяти по соответствующему адресу;
*(unsigned char*)0x77200480 - разыменование указателя - получение доступа на чтение из (если справа) либо на запись в (если слева) область/области памяти на которую указывает указатель. Тип указателя определяет размер модифицируемой памяти - в данном случае 1 байт.
Спасибо что разжевали! Еще путаюсь с этими указателями )
Re: Вопросы по С/С++ (СИ)
Добавлено: Ср окт 21, 2015 03:24:29
kalobyte
Siarzhuk писал(а):// Kazakh (Kazakhstan) 0x043f kk-KZ
что-то я не понял, откуда 04?
#define SUBLANG_KAZAK_KAZAKHSTAN 0x01
Siarzhuk писал(а):Для VS 2008 статическая версия рантайма выбирается так
я там и выбрал, но все равно просит новую длл
Re: Вопросы по С/С++ (СИ)
Добавлено: Ср окт 21, 2015 08:36:30
Siarzhuk
kalobyte писал(а):// Kazakh (Kazakhstan) 0x043f kk-KZ
что-то я не понял, откуда 04?
#define SUBLANG_KAZAK_KAZAKHSTAN 0x01
Aufmerksamkeit über Alles. Гляньте на формат этого ид ещё раз.
0x01 <<
10
Re: Вопросы по С/С++ (СИ)
Добавлено: Сб окт 24, 2015 17:54:24
kalobyte
и что?
эти цифры мне ни о чем не говорят
https://msdn.microsoft.com/en-us/librar ... 85%29.aspx
вот тут этот макрос
а как руками без него сделать? зачем писать лишний код
Re: Вопросы по С/С++ (СИ)
Добавлено: Сб окт 24, 2015 21:03:02
Siarzhuk
kalobyte писал(а):а как руками без него сделать?
искомое число как бы уже пролетало:
kalobyte писал(а):зачем писать лишний код
Оригинальный спицылист уже сократил "лишний" код - уж скоро как неделю его хамонокод разгребаете.

Хотя он скорее всего тупо в отладчике коды подсмотрел.
Re: Вопросы по С/С++ (СИ)
Добавлено: Пн окт 26, 2015 10:07:14
kalobyte
Siarzhuk писал(а):Оригинальный спицылист уже сократил "лишний" код
теперь понятно
я думал он те коды из таблицы просто взял икаким-то макаром слепил
ну раз макрос делает, то поковыряю его
а как отвязать от новых длл 2013 студии? те ключи не сработали
Re: Вопросы по С/С++ (СИ)
Добавлено: Пн окт 26, 2015 11:16:32
Siarzhuk
kalobyte писал(а):а как отвязать от новых длл 2013 студии? те ключи не сработали
Я максимум смог в 2010 проверить - сначала собрал статическую версию в 2008 затем сконвертировал в 2010 - при просмотре в depends.exe зависимостей на msvcrtxxx.dll нету. Попробуйте открыть мой проект (
http://siarzhuk.spdns.org/ruslat-2010.zip) в 2013 студии - может поможет разобраться.
Re: Вопросы по С/С++ (СИ)
Добавлено: Пн окт 26, 2015 12:29:25
kalobyte
посмотрел,, сконвертил проект в 2013
собрал
зависимостей нет, есть только базовый msvcrt
свой проект пересобрал - зависимостей нет:?
хер знает чего ему надо было
поставил мт и зависимость пропала, а в тот раз так же ставил и была
осталось с макросом разобраться
Re: Вопросы по С/С++ (СИ)
Добавлено: Вт окт 27, 2015 12:11:06
Alpout
Не могу понять, почему не компилируется некоторые строки кода, например сложения умножения? Хотя параметры заданы как
Re: Вопросы по С/С++ (СИ)
Добавлено: Вт окт 27, 2015 12:22:54
ARV
да что тут понимать... лишние они, точнее - не дающие какого-либо результата, вот и не компилируются.
Re: Вопросы по С/С++ (СИ)
Добавлено: Вт окт 27, 2015 12:38:08
Alpout
ARV писал(а):да что тут понимать... лишние они, точнее - не дающие какого-либо результата, вот и не компилируются.
я прообовал их выводить в portc, но ничо не изменилось
Re: Вопросы по С/С++ (СИ)
Добавлено: Вт окт 27, 2015 12:40:00
ARV
я и говорю, результат этих операций нулевой, вот они и не компилируются. вы подумайте сами...
Re: Вопросы по С/С++ (СИ)
Добавлено: Вт окт 27, 2015 13:18:31
Alpout
ARV писал(а):я и говорю, результат этих операций нулевой, вот они и не компилируются. вы подумайте сами...
ну примерно понял, что Вы имеете ввиду. Переменная у присвоил значение TMR0, потому что x ниче не представляет, то есть х=0?
Re: Вопросы по С/С++ (СИ)
Добавлено: Вт окт 27, 2015 13:25:25
ARV
ну типа того
после того, как вы 256 используете множителем в выражении, где все операнды - однобайтные числа, нелепо ожидать, что в младшем байте результата будет что-либо, кроме 0.