Обработчик события при нажатии кнопки
{ // Чтение автоматизированного свойства сервера
Editl->Text = AutoServer.OlePropertyGet("EditStr");
//
Обработчик события при нажатии кнопки Button3 void _
fastcall
TFormI::Button3Click(TObject *Sender) { //
Очистка автоматизированного свойства сервера AutoServer.OleProcedure("Clear") ;
Листинг 3.17. Кодовый файл Auto1.cpp модуля контроллера.
3.6.1.5 Быстрый вызов функций
При объявлении функций, параметры которых передаются через процессорные регистры, используется модификатор _
fastcall:
<возвращаемый тип> _
fastcall
<name>(<список параметров^
Это ключевое слово определяет, что первые три типизированных параметра функции с именем name (слева направо по списку) передаются не через стек, а через процессорные регистры AX, BX и DX. Регистры не используются, если значение параметра не умещается в регистр, т.е. при передаче через параметр чисел с плавающей точкой, структур и функций.
Строго говоря, быстрый вызов функций не является прерогативой компилятора
C++Builder. В предыдущей главе я уже обращал внимание читателя на использование
_fastcall в объявлениях функций обработки событий, которые C++Builder генерирует автоматически.
3.6.1.6 Расширенные типы данных Delphi
C++Builder не позволяет посредством известного ключевого слова
typedef просто переопределить некоторые сложные типы данных Объектного Паскаля. C++Builder реализует такие расширенные типы в виде обычных или шаблонных классов
(template class). Каждый такой класс содержит все необходимые конструкторы, деструкторы, свойства и объектные методы. Многие компоненты VCL используют реализацию расширенных типов, а кроме того, они требуются при разработке новых компонент на базе оригиналов из Delphi.
Ниже приводится сводная таблица встроенных типов Delphi и соответствующих им типов C++Builder:
Delphi |
Длина и значения |
C++Builder |
Реализация |
Shortint |
8-битовое целое |
char |
typedef |
Smallint |
16-битовое целое |
short |
typedef |
Longint |
32-битовое целое |
long |
typedef |
Byte |
8-битовое целое без знака |
unsigned char |
typedef |
Word |
16-битовое целое без знака |
unsigned short |
typedef |
Integer |
32-битовое целое |
int |
typedef |
Cardinal |
32-битовое целое без знака |
unsigned long |
typedef |
Boolean |
true/false |
bool |
typedef |
ByteBool |
true/false или 8-битовое целое без знака |
unsigned char |
typedef |
WordBool |
true/false или
16-битовое целое без знака
|
unsigned short |
typedef |
LongBool |
true/false или
32-битовое целое без знака
|
unsigned long |
typedef |
AnsiChar |
8-битовый символ без знака |
unsigned char |
typedef |
WideChar |
Слово - символ Unicode |
wchar t |
typedef |
Char |
8-битовый символ |
char |
typedef |
String |
Текстовая строка Delphi |
AnsiString |
typedef |
Single |
32-битовое плавающее число |
float |
typedef |
Double |
64-битовое плавающее число |
double |
typedef |
Extended |
80-битовое плавающее число |
long double |
typedef |
Real |
32-битовое плавающее число |
float |
typedef |
Comp |
64-битовое плавающее число |
double |
typedef |
Pointer |
32-битовый указатель |
void * |
typedef |
PChar |
32-битовый указатель на символы без знака |
unsigned char * |
typedef |
PansiChar |
32-битовый указатель на ANSI символы без знака |
unsigned char * |
typedef |
Set |
Множество 1..32 байт |
Set<type, minval, maxval> |
template class |
AnsiString |
Текстовая строка Delphi |
AnsiString |
class |
Variant |
Вариантное значение, 16 байт |
Variant |
class |
TdateTime |
Значение даты и времени, 64-битовое плавающее число |
TDateTime |
class |
Currency |
Валюта, 64-битовое плавающее число, 4 цифры после точки |
Currency |
class |
<
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий