Файл: ...\Samples\Solution\Winapi\Systime.scx
Данный пример демонстрирует вызов Windows API функции GetSystemTime. GetSystemTime заполнят структуру двух байтными (WORD) (16-битовое целое без знака) значениями с информацией о системном времени.
C Функция Объявления и Описание Структуры
Copy Code | |
|---|---|
VOID GetSystemTime(
LPSYSTEMTIME lpSystemTime // адрес структуры системного времени
); | |
Это - описание структуры:
Copy Code | |
|---|---|
typedef struct _SYSTEMTIME {
WORD wYear;
WORD wMonth;
WORD wDayOfWeek;
WORD wDay;
WORD wHour;
WORD wMinute;
WORD wSecond;
WORD wMilliseconds;
} SYSTEMTIME; | |
Вызов данной Функции в Visual FoxPro
Следующий Visual FoxPro код передает GetSystemTime ссылку на символьную переменную, которая заполняется двухбайтныме значениями.
Copy Code | |
|---|---|
* Visual FoxPro Code: cmdSystemTime.Click DECLARE INTEGER GetSystemTime IN win32api STRING @ cBuff=SPACE(40) GetSystemTime(@cBuff) | |
Чтобы извлечь информацию из символьной переменной cBuff, следующий код конвертирует 8-битовые ASCII символы для года и месяца в 16-битовые эквиваленты.
Copy Code | |
|---|---|
THIS.Parent.lblYear.Caption = ALLTRIM(STR(ASC(SUBSTR(cBuff,2)) * 256 + ASC(SUBSTR(cBuff,1)))) THIS.Parent.lblMonth.Caption = MONTH_LOC + ALLTRIM(STR(ASC(SUBSTR(cBuff,4)) * 256 + ASC(SUBSTR(cBuff,3)))) | |