Соответствия типов Object Pascal Delphi и C++ × C++ Builder программирование
- Главная
- FAQ
- Соответствия типов Object Pascal Delphi и C++
23 июня 2021
Delphi | Размер или значение | Соответствие С++ | Реализация |
Shortlnt | целое 8 бит | signed char | typedef |
Smalllnt | целое 16 бит | short | typedcf |
Longlnt | целое 32 бита | int | typedef |
Byte | целое без знака 8 бит | unsigned char | typedef |
Word | целое без знака 16 бит | unsigned short | typedef |
Integer | целое 32 бита | int | typedef |
Cardinal | целое без знака 32 бита | unsigned int | typedef |
Boolean | true/false | bool | typedef |
ByteBool | true/false или целое без знака 8 бит | unsigned char | typedef |
WordBool | true/false или целое без знака 16 бит | unsigned short | typedef |
LongBool | true/false или целое без знака 32 бита | BOOL (WinAPI) | typedef |
AnsiChar | символ без знака 8 бит | char | typedef |
WideChar | символ Unicode размером в» слово | wchar t | typedef |
Char | символ без знака 8 бит | char | typedef |
AnsiString | AnsiString Delphi | AnsiString | класс |
String[n] | прежний стиль строк Delphi, n = 1. .255 бит | SmallString<n> | шаблон класса |
ShortString | прежний стиль строк Delphi, 255 бит | SmaIlString<255> | typedef |
String | AnsiString Delphi | AnsiString | typedef |
Single | число с плавающей запятой 32 бита | float | typedef |
Double | число с плавающей запятой 64 бита | double | typedef |
Extended | число с плавающей запятой 80 бит | long double | typedef |
Real | число с плавающей запятой 32 бита | double | typedef |
Pointer | родовой указатель 32 бита | void * | typedef |
PChar | указатель на символы 32 бита | unsigned char * | typedef |
PAnsiChar | указатель на символы ANSI 32 бита | unsigned char* | typedef |
Comp | число с плавающей запятой 64 бита | Comp | класс |
OleVariant | значение variant OLE | OleVariant | класс |
Поделиться
Джойстики для программирования — #21 от Tridelvior — Programming
Шеф ДельфиРайан_М
#11
Фотоплазма:
По сути, если вы понимаете двоичный код, вы можете воспользоваться шляпой POV для управления своим роботом.
Вы также должны уметь работать с битами в C!
Джо_Росс
#12
Астронаут7303:
Итак, битовые маски:
const unsigned char Hat_None = 0x2C; const unsigned char Hat_Up = 0xFC; const unsigned char Hat_Left = 0x60; const unsigned char Hat_Right = 0xC0; константный символ без знака Hat_Down = 0x94; // Если значения не отключены, комбинации не объединяются по ИЛИ const unsigned char Hat_Up_Left = 0xFC; const unsigned char Hat_Up_Right = 0xFC; const unsigned char Hat_Down_Left = 0xA4; const unsigned char Hat_Down_Right = 0xD4;
Почему бы не #define их вместо того, чтобы занимать память?
дельтакодер1020
№13
Крис Хлева:
У меня есть вопрос, как мне добавить нужные строки кода, чтобы шляпы POV работали с новым языком C в этом году? Среди прочего, где мне нужно их определить и сопоставить с правильными портами ввода-вывода для работы с входным сигналом hex/bin?
пример:
если ((p1_wheel & 0xC0) == 0xC0) { // управление шляпой сдвинуто вправо } иначе если ((p1_wheel & 0xA4) == 0xA4) { // управление шляпой сдвинуто вниз-влево } ... и так далее ...
просто используйте побитовую функцию И (&), чтобы определить, установлены ли правильные биты.
система
№14
Спасибо, очень помогло.
дельтакодер1020
№15
нет проблем. если вам нужен обзор синтаксиса C, вы можете попробовать различные руководства в разделе технических документов или руководство, над которым я работаю (см. ветку на этом форуме под названием «ПЕРВОЕ руководство по программированию»)
Erico
№16
Если можешь сделать мне одолжение, научи меня программировать джойстики. буду признателен. спасибо
УДАЧИ В ЭТОМ ГОДУ
deltacoder1020
# 17
входы от джойстиков хранятся в диапазоне переменных (фактически псевдонимов), настроенных в ifi_aliases.h: например,
, ось x первого джойстика — p1_x
, если вы хотите, чтобы джойстик был прямым pwm, просто используйте что-то вроде следующей строки:
pwm01 = p1_x;
Райан_М
# 18
Эрико:
Если вы можете сделать мне одолжение, научите меня программировать джойстики. буду признателен. спасибо
УДАЧИ В ЭТОМ ГОДУ
Просто чтобы расширить то, что сказал DeltaCoder, джойстики обозначаются как p X _x и p X _y, где X — это номер порта, к которому подключен джойстик. Например, чтобы получить доступ к осям x и y джойстика порта, вы должны использовать p1_x и p1_y.
Значение, поступающее на эти контакты, находится в диапазоне от 0 до 255 ( беззнаковый символ ). 0 заполнен с одной стороны, 127 — центр, а 255 — заполнен с другой стороны. Например, если вы переместите джойстик полностью вперед, p1_x будет равно 255, а p1_y будет равно 127. Если вы переместите его полностью вправо, p1_y будет равно 127, а p1_y будет равно 255.
Вы также можете сочетание того и другого, конечно. Например, если вы находитесь в переднем, правом углу, вы получите p1_x и p1_y, оба со значением 255.
Вы можете использовать эти значения в своей программе как угодно. Только не пытайтесь изменить их значение в коде; это не сработает!
Надеюсь, это поможет. Удачи.
Астронаут7303
# 19
Джо_Росс:
Почему бы не #define их вместо того, чтобы занимать память?
Мне не нравится использовать #define для констант. Кроме того, у нас есть память, которую нужно убить.
дельтакодер1020
#20
Астронаут7303:
Мне не нравится использовать #define для констант. Кроме того, у нас есть память, которую нужно убить.
хм… судя по всему, системе форума удалось разместить ответ в другой ветке… правильно.
Тридельвиор
# 21
Знаете ли вы недвоичные значения pX_wheel в их верхнем и нижнем положениях?
Я пытаюсь использовать их значения с ШИМ и не знаю, что использовать.
темп = p1_wheel;
if (temp==КАКОЕ ЗНАЧЕНИЕ?[ВВЕРХ]){
pwm02=200;
}
else[DOWN]{
pwm02=55;
}
Райан Камингс
# 22
дельтакодер1020:
пример:
если ((p1_wheel & 0xC0) == 0xC0) { // управление шляпой сдвинуто вправо } иначе если ((p1_wheel & 0xA4) == 0xA4) { // управление шляпой сдвинуто вниз-влево } ... и так далее ...просто используйте побитовую функцию И (&), чтобы определить, установлены ли правильные биты.
Давненько не было, но вот (Извините, дельта!)
Если вы нажмете шляпу на свой код, то по умолчанию будет использоваться первое введенное вами условное выражение.
Правильнее было бы сделать это так (используя константы, любезно предоставленные Astronouth7303)
переключатель (px_wheel и 0xFC) { чехол Hat_Up_Left: { // ... Код здесь сломать; } case Hat_Up_Right: { // ... Код здесь сломать; } // и т.д... По умолчанию: { сломать; } }
Роберт_Хафнер
# 23
Кто-нибудь может мне помочь?
Мне нужно, чтобы кто-нибудь выполнил и т. д. часть
if( (p1_wheel & 0xC0) == 0xC0 )
{
//элемент управления сдвинут вправо
}
else if( (p1_wheel & 0xA4) == 0xA4 )
{
//элемент управления сдвинут вниз-влево
}
…
…
так что я могу сделать это правильно. Я немного медлителен, когда дело доходит до двоичных и шестнадцатеричных кодов
deltacoder1020
# 24
здесь они в двоичной, десятичной и шестнадцатеричной формах…
Нейтральный: 001011xx 44 0x2c
влево: 111111xx 252 0xfc
Вверх: 111111xx 252 0xfc
Вправо: 111111xx 252 0xfc
слева: 011000xx 96 0x60
. 148 0x94
Внизу справа: 110101xx 212 0xD4
система
# 25
Вот диаграмма, на которой представлен полный диапазон значений, и значение для проверки с помощью И выделено жирным шрифтом.
252 -255 252 -255 252 -255
96 -99 44 -47 200**-203
164 -167 148**-151 212 -215
Роберт_Хафнер
# 26
Поскольку последние биты ненадежны (из того, что я читал), как это повлияет на программу? Должен ли я придерживаться общей области? пример:
если (p1_wheel >= 42 && p1_wheel <= 46) // я нейтрален если (p1_wheel >= 250 && p1_wheel <= 254) // я вверху слева;
дельтакодер 1020
# 27
ваш предыдущий код с побитовым И (&) должен работать нормально - просто используйте шестнадцатеричные или десятичные коды, которые я разместил выше (потому что вы И это с исходной константой, младшие биты не имеют значения, и, таким образом, это будет верно на весь ассортимент).
Роберт_Хафнер
# 28
, рискую показаться глупым, как работает оператор AND и что мне с ним делать?
дельтакодер 1020
# 29
если ((p1_wheel & 0xC0) == 0xC0)
«&» — это оператор «побитовое И». это означает, что он просматривает отдельные биты значения и выполняет операцию И. И определяется следующим образом: истина, если оба входа истинны, иначе ложь. логическая таблица:
0, 0 = 0
1, 0 = 0
0, 1 = 0
1, 1 = 1
, так что, как видите, он вернет единицы только в тех местах, где оба числа имеют единицы. таким образом, он вернет все биты одного значения только в том случае, если те же биты равны 1 в другом значении. оператор if, по сути, проверяет, что все биты, равные 1 в 0xC0, также равны 1 в p1_wheel. замените 0xC0 на любую «битовую маску» (набор битов), которую вы хотите протестировать как 1.
iamjarret
#30
привет, у меня есть вопрос
мы подключили двигатель к порту pwn, который соответствует p1_wheel (колесо)
и интерфейс оператора показывает, что когда мы двигаем колесо, значения меняются (ввод), но это не так. перемещение мотора. Он правильно сопоставлен (pwm09 = p1_wheel;)
, как я могу заставить его работать
, я также хотел бы сделать код, в котором сделанный pwm должен работать со скоростью 255, когда p4_sw_trig (триггер) нажат (равно 1).
мой код пока равен
if (p4_sw_trig == 1)
{
pwm12 = 255; (для этого я закомментировал pwm12 = p4_wheel;)
я также пробовал p4_wheel = 255; и я попробовал p4_wheel = 0xFC;
}
наконец, ось y не работает на портах 3 и 4 на любом джойстике я пытаюсь
пожалуйста помогите мне исправить мой код, колеса и оси y
спасибо
← предыдущая страница
-функции - Googlesuche
AlleBilderVideosNewsMapsShoppingBücher
suchoptionen
функции Visual FoxPro для обработки текста - Alvechurch Data
www. alvechurchdata.co.uk › компания › foxtext
команды и функции Foxpro для управления символами и текстом.
Строковые и текстовые функции FoxPro — Alvechurch Data
www.alvechurchdata.co.uk › foxtext
С самого начала FoxPro всегда имел широкий набор команд и функций для обработки текста — больше, чем необходимо для язык базы данных.
Обработка строк с помощью VFP — журнал CODE
www.codemag.com › article › Обработка строк с помощью...
09.12.2021 · VFP имеет ряд полезных функций для замены текста. STRTRAN(), CHRTRAN(), CHRTRANC(), STUFF() и STUFFC(). STRTRAN() ...
[PDF] FoxPro Functions — NC School Bus Safety
ncbussafety.org › TIMS › Reference › Foxpro_Functions
Функция DTOS() возвращает строку символов в формате ГГГГММДД для заданной даты выражение. Эта функция полезна при индексации поля даты.
Строковые функции (драйвер ODBC для Visual FoxPro) — Microsoft Learn
Learn. Microsoft.com › Learn › SQL › SQL Server
18.11.2022 · В этой статье. В следующей таблице перечислены функции обработки строк ODBC, поддерживаемые драйвером ODBC для Visual FoxPro. когда Visual ...
Функция, Процедура, Возврат, EndFunc, EndProc
hackfox.github.io › section4
Visual FoxPro 7 содержит небольшое усовершенствование, позволяющее возвращать массивы из процедуры или функции. Существуют некоторые ограничения на возврат массива.
Ähnliche Fragen
Каковы функции FoxPro?
Что такое процедуры в Visual FoxPro?
Что заменило Visual FoxPro?
Поддерживается ли еще Visual FoxPro?
AT(), ATC(), RAT(), $ | Руководство хакера по Visual FoxPro
hackfox.github.io › section4
Непочтительный взгляд на то, как на самом деле работает Visual FoxPro. Сообщает вам внутреннюю информацию о каждой команде, функции, свойстве, событии и методе Visual FoxPro.
[PDF] VFP: программа функций дисперсии
cran.