Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Типы данных C, VB -> Delphi [D3, XP]


igan ©   (2009-11-11 06:23:00) 

Здравствуйте, уважаемые! Прошу помочь правильно описать запись. Есть примеры на Си и VB. Нужно перенести в Delphi (главное размерность записи в байтах)


/* Structure used by rhsc_param_value_bynames()
* and rhsc_param_value_put_bynames() */
typedef struct _PARAM_BYNAME_DATA
{
   n_char      *szPntName; /* (in) point name */
   n_char      *szPrmName; /* (in) parameter name */
   n_long      nPrmOffset; /* (in) parameter offset */
   PARvalue    *pupvValue; /* (in/out) parameter value union */
   n_ushort    nType;      /* (in/out) value type */
   n_long      fStatus;    /* (out) status of each value access */
} PARAM_BYNAME_DATA;



' Define structure for RHSC_param_value_bynames and RHSC_param_value_put_bynames
' procedure calls
Type param_byname_data
   point_name As String
   param_name As String
   param_offset As Long
   padding1 As Long                'for byte alignment between VB and C
   param_value As Variant
   param_type As Integer
   padding2 As Integer             'for byte alignment between VB and C
   status As Long
End Type


Anatoly Podgoretsky   (2009-11-11 15:42:00) [1]

> igan  (11.11.2009 14:40:02)  [2]

Там в примере по VB не зря слова про вставку псевдо данных и выравнивание.


igan   (2009-11-11 14:40:00) [2]

спасибо. попробую еще раз. вообще так уже пробовал, выдавало ошибку:
NADS_ARRAY_INVALID_ELEMENT_SIZE 0x83A1 /* Safearray elements incorrect size */


clickmaker   (2009-11-11 10:46:00) [3]

type
PARAM_BYNAME_DATA = record
  szPntName: PChar;
  szPrmname: PChar;
  nPrmOffset: Longint;
  pupvValue: ^PARvalue;
  nType: Word;
  fStatus: Longint;
end;

со второй вообще без изменений, только As убрать


Наверх

Титульная страница Поиск, карта сайта Написать письмо