20168

Использование функций WinAPI

Лекция

Информатика, кибернетика и программирование

DECLARE DLL Регистрирует функцию во внешней 32разрядной библиотеке динамических связей Windows . Чтобы удалить зарегистрированные функции из памяти выдайте команду CLEAR ALL или CLEAR DLLS.

Русский

2013-07-25

32.5 KB

16 чел.

ПРИМЕРЫ.

1. Использование функций WinAPI.

.dll – библиотеки интерфейса прикладного программирования (Application Program Interface). Библиотеки API-программ расширяют возможности языка и пользовательского интерфейса. Открыв внешнюю библиотеку API, вы можете пользоваться API-функциями точно также, как функциями VFP. С помощью команды Display Status или LIST STATUS можно отобразить список имеющихся в библиотеке функций.

DECLARE –DLL - Регистрирует функцию во внешней 32-разрядной библиотеке динамических связей Windows (.DLL).

Синтаксис:

DECLARE [cFunctionType] FunctionName IN LibraryName [AS AliasName]

[cParamType1 [@] ParamName1,

 cParamType2 [@] ParamName2, ...]

Параметры:

cFunctionType

Указывает, имеет ли 32-разрядная .DLL-функция системы Windows возвращаемое значение. Аргумент cFunctionType включается, если функция имеет возвращаемое значение; в противном случае cFunctionType опускается.

cFunctionType может принимать следующие значения:

cFunctionType Описание

SHORT 16-разрядное целое число

INTEGER 32-разрядное целое число

SINGLE 32-разрядное число с плавающей запятой

DOUBLE 64-разрядное число с плавающей запятой

STRING Символьная строка

FunctionName

Задает имя 32-разрядной .DLL-функции Windows для регистрации в Visual FoxPro. Обратите внимание: в имени FunctionName важен регистр символов.

Имя 32-разрядной .DLL-функции Windows может отличаться от описания в документе Win32 API. Например, функцию MessageBox следует назвать MessageBoxA (для однобайтных символов) или MessageBoxW (для UNICODE). Если Visual FoxPro не может найти 32-разрядную .DLL-функцию Windows, заданную аргументом FunctionName, к концу имени функции присоединяется буква A, и Visual FoxPro повторяет поиск, используя новое имя.

Если имя заданной 32-разрядной .DLL-функции Windows совпадает с именем функции Visual FoxPro или является недопустимым именем Visual FoxPro, включите имя 32-разрядной .DLL-функции Windows в качестве FunctionName и присвойте этой функции допустимое имя Visual FoxPro с помощью предложения AS, описанного ниже.

IN LibraryName

Задает имя внешней библиотеки .DLL в Windows, которая содержит 32-разрядную .DLL-функцию Windows ѕ FunctionName. Если задать WIN32API в качестве LibraryName, Visual FoxPro ищет 32-разрядную .DLL-функцию Windows в библиотеках KERNEL32.DLL, GDI32.DLL, USER32.DLL, MPR.DLL и ADVAPI32.DLL.

AS AliasName

Задает псевдоним для имени 32-разрядной .DLL-функции Windows, которое совпадает с именем некоторой функции Visual FoxPro или является недопустимым именем Visual FoxPro. В качестве AliasName нельзя использовать зарезервированное слово Visual FoxPro или имя 32-разрядной .DLL-функции Windows, уже зарегистрированное в Visual FoxPro.

Пользуйтесь псевдонимом AliasName для вызова 32-разрядной .DLL-функции Windows. В AliasName несущественен регистр символов.

cParameterType1 [@] ParamName1, cParameterType2 [@] ParamName2, ...

Задает типы параметров, передаваемых в 32-разрядную .DLL-функцию Windows.

Аргумент cParameterType является обязательным; он задает тип параметра, ожидаемый 32-разрядной .DLL-функцией Windows. cParameterType может принимать одно из следующих значений:

cParameterType Описание

INTEGER 32-разрядное целое число

SINGLE 32-разрядное число с плавающей запятой

DOUBLE 64-разрядное число с плавающей запятой

STRING Символьная строка

Если параметры не принадлежат типу, ожидаемому 32-разрядной .DLL-функцией Windows, Visual FoxPro генерирует ошибку. Неопределенное значение может быть передано как символьная строка.

Чтобы при вызове функции передать параметр по ссылке, в данной команде после параметра cParameterType и в вызывающей функции перед соответствующей переменной нужно поставить символ @. Если не поставить @ в команде DECLARE и/или в вызывающей функции, параметр будет передан по значению. О .DLL-функциях, требующих включения @ для передачи параметров по ссылке, см. документ Microsoft Win32 Programmer's Guide.

Замечание  Имена параметров ParamName1, ParamName2 и т.д. не являются обязательными и не используются в Visual FoxPro или в 32-разрядной .DLL-функции Windows. Их можно задать для напоминания о том, какие имена и типы параметров получает функция.

Комментарии

Перед тем, как вызывать 32-разрядную .DLL-функцию Windows из Visual FoxPro, необходимо выдать команду DECLARE с именем этой функции, именем содержащей ее библиотеки .DLL и типами параметров, которые функция ожидает получить.

Чтобы отобразить имена зарегистрированных функций, выдайте команду DISPLAY STATUS или LIST STATUS. Чтобы удалить зарегистрированные функции из памяти, выдайте команду CLEAR ALL или CLEAR DLLS.

ПРИМЕР: Пользователь запускает программу и набирает пароль (МАША – регистр русский). Ответ ему- пароль неверный. Приходится сначала переключиться в английский регистр, а затем снова набрать пароль. Избежать этого можно, если использовать следующую процедуру. Вызываться она может, например, в методе Activate формы.

DECLARE SHORT GetKeyboardLayoutName IN user32.dll STRING @lpr

lpr = ‘  ’

= GetKeyboardLayoutName(@lpr)

DECLARE SHORT ActivateKeyboardLayout IN user32.dll INTEGER HKL, INTEGER flags

if not ‘419’ $lpr

=ActivateKeyboardLayout(1,0)

endif


 

А также другие работы, которые могут Вас заинтересовать

75532. Відвідування театру. Враження від вистави. План-конспект уроку з англійської мови для учнів 9-х класів 55 KB
  Т: The topic of our lesson is Going to the thetre Describing performnce . By the end of the lesson you should be ble: to review nd ctivize the words nd wordcombintions to the topic Going to th thetre nd Describing performnce ; to predict fcts nd events from the newspper rticle by its hedline; to understnd the gist nd detils of the newspper rticle despite the nturl difficulties; to express your opinions bout performnce. I went to the thetre lst Sundy. Do you often go to the thetre Why Cn you sy wht the thetre is Where re the best sets in...
75533. Великий Кобзар, Тарас Шевченко, відомий у всьому світі 66.5 KB
  Т: Wht is this rticle bout Look t the newspper hedline of ex. Predict wht is this rticle bout 2 WhileReding ctivities. Wht kind of the text is it Wht kind of newspper is it tken from Wht is this rticle bout б Scnning. Where do monuments to gret poets of the world literture Ukrinin Trs Shevchenko Russin lexnder Pushkin Byelorussin Ynk Kupl nd mericn Wlt Whitmn stnd nerby on one lwn In wht town is rrow Prk situted Wht poem by Trs Shevchenko resounded in the prk on tht dy Who lid flowers t the monuments to the luminries of...
75534. Кіно в Україні 58 KB
  Т: The topic of our lesson is Cinem in Ukrine Describing film . By the end of the lesson you should be ble: to review the words nd wordcombintions to the topic Going to the cinem Describing film ; to understnd the gist nd detils of the text for reding; to express your opinion bout film you hve recently seen. Т: Red the quottion bout films find Ukrinin equivlent. Повторення ЛО теми Going to the cinem Describing film .
75535. Відвідування кінотеатру. Враження про переглянутий фільм 43.5 KB
  Мета: Перевірити рівень навчальних досягнень і рівень навченості учнів за вивченою темою Going to the cinem Your fvourite film . Т: Weve got test tody to check your skills in communictive writing bout going to the cinem nd your fvourite film. By the end of the lesson you should be ble: to mtch the English words nd word combintions with their Ukrinin equivlents Level 1; to define different kinds of films by their description Level 2; to nswer the questions to show your bility to prticipte in converstionl exchnge bout going to the...
75536. Вибір професії. Нові ЛО 83.5 KB
  Ввести й активізувати у мові учнів ЛО теми «Вибір професії». Практикувати учнів у читанні тексту з метою отримання загального уявлення (skimming) та з метою максимально повного й точного розуміння всієї інформації, що міститься в текст...
75537. Вибір професії. План-конспект уроку з англійської мови для учнів 9-х класів 53 KB
  Активізувати у мові учнів ЛО теми «Вибір професії». Підготувати до самостійного висловлювання про вибір професії та можливість отримана подальшої освіти після закінчення 9 класу.
75538. Вибір професії. Плани на майбутнє 71 KB
  Join together the two hlves of the fmous proverbs nd syings bout work nd peoples occuptions. Work in pirs. The hrdest work is to do nothing. Т: Wht colloctions of words connected with work cn you nme Lets drw Mind Mp.
75539. Вибір професії. Плани на майбутнє. Узгодження часів в англійській мові 60 KB
  We hve to review the words nd word combintions for this topic nd the grmmr: The Sequence of Tenses. By the end of the lesson you should be ble: to operte the words nd word combintions for the topic: Choosing profession People nd Occuptions ; to review the grmmr: The Sequence of Tenses ; to conduct your own dilogues using the given one s n exmple. If you her one of your profession put your hnd up nd cross the word out. the winner is the first student to cross out ll his her words nd shouts Bingo Profession Bingo Pupil\'s grid Professions:...
75540. Даниель Дефо, автор «Робінзона Крузо». Контроль позакласного читання 91.5 KB
  Обладнання: підручник текст для читання The uthor of Robinson Crusoe HO1 True or Flse H02 Personlity Quiz H03 Finish the Sentences H04. Т: The topic of our lesson is Dniel Defoe the uthor of Robinson Crusoe. Пред\'явлення тексту для читання Dniel Defoe the uthor of Robinson Crusoe . Т: Hve you ever red Robinson Crusoe Wht do you know bout the uthor of this book Is the book Robinson Crusoe still red by children nd grownups 2 WhileReding ctivities.