четверг, 5 января 2012 г.

Описание API вызова библиотеки GetKursNBU.DLL

Данная библиотека (далее DLL), для работы с онлайн-сервисом НБУ через POST-запросы в ОС NT/2000/2003/XP/7/8, предназначена для получения курса ГРН за 100 единиц произвольной валюты на "любую" дату за прошлый период, включая текущую.

DLL предоставляет универсальный доступ для других приложений вне зависимости от языка в среде Win ALL. Для использования DLL в своих проектах соблюдайте соглашение об stdcall-вызовах. Тип соглашения о вызове объявляется после прототипа функции, будь то объявление функционального типа или же объявление функции.


Таблица расшифровок входных параметров экспортируемой функции 'gekursuan100()' библиотеки 'GetKursNBU.DLL':


Пример динамического подключения (Delphi 6/7/2006/2009/2010/TDL/XE5-7):
var
     gekursuan100():function(sCurr,    // валюта
                             dates,              // дата
                             ProxyHost,      // адрес прокси
                             ProxyPort:       // порт прокси
                             pansichar;
                             today: boolean):    // текущая или любая дата
                             pansichar; stdcall; // грн за 100 единиц валюты
     LibHandle: THandle;


function LinkProc(ProcName: string):Pointer;
begin
 try
  result:= GetProcAddress(LibHandle,PChar(ProcName));
 except end
end;

{ инициализация }
begin
 LibHandle:= LoadLibrary('GetKursNBU.DLL');
 if LibHandle<>0 then
  gekursuan100():= LinkProc('gekursuan100()');
...

{ пример вызова для текущей даты USD }
begin
 result:= gekursuan100('Usd',
                       '',               
                       '',
                       '',
                       true         
                       );

{ пример вызова для 23.02.2015 }
begin
 result:= gekursuan100('BYR',
                       '23.02.2015',               
                       '',
                       '',
                       false
                       );
Пример использования в Excel (макроса в VBA):
Declare Function gekursuan100 Lib "GetKursNBU.DLL" (ByVal curr As String, ByVal dates As String, ByVal prxhost As String, ByVal prxport As String ByVal today As Boolean) As String

Sub TestMacros()
 RESULT = gekursuan100("EUR", "", "", "", True)
End Sub

Private Sub Command1_Click()
 MsgBox gekursuan100("EUR", "", "", "", True)
End Sub
Пример использования через dynwrapX.dll в VBS:
' регистрируем COM объект DynamicWrapperX в тихом режиме
Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run ("regsvr32.exe dynwrapx.dll /s"),3, true

' валюта
curr = "EUR"

' адрес прокси
ProxyHost = ""
' порт прокси
ProxyPort = ""

' инициируем запрос
Set Wrap = CreateObject("DynamicWrapperX.2")
Wrap.Register "GetKursNBU.dll", "gekursuan100", "i=ssssb", "f=s", "r=s"
MSGBOX ""&Wrap.gekursuan100(curr, "", ProxyHost, ProxyPort, true)&" грн за 100 "&curr
MSGBOX ""&Wrap.gekursuan100(curr, "23.02.2015", ProxyHost, ProxyPort, false)&" грн за 100 "&curr

ПОРЯДОК ИСПОЛЬЗОВАНИЯ
  1. Параметр 'today' функции gekursuan100() задает автоматическое определение текущей даты при TRUE.
  2. Функция gekursuan100() автоматом пересчитывает кросс-курс заданной валюты в 100 единицах к грн (к примеру, НБУ выдал 3.6 грн за 10 руб, функция вернет 36 грн за 100 руб и т.д.).
  3. На Windows Vista/7/8/8.1 (32/64 bit) запускать 'regdynwrapx.bat' правой кнопкой мыши от имени Администратора.
  4. Допустимые валюты:
AUD    Австралійський долар
AZN    Азербайджанський манат
GBP    Англійський фунт стерлінгів
BYR    Бiлоруський рубль
DKK    Данська крона
USD    Долар США
EUR    Євро
ISK    Ісландська крона
KZT    Казахстаньський теньге
CAD    Канадський долар
MDL    Молдовський лей
NOK    Норвезька крона
PLN    Польський злотий
RUB    Російський рубль
SGD    Сінгапурський долар
XDR    Спецiальнi права запозичення
TRY    Турецька ліра
TMT    Туркменський манат
HUF    Угорський форинт
UZS    Узбецький сум
CZK    Чеська крона
SEK    Шведська крона
CHF    Швейцарський франк
CNY    Юань Женьмiньбi
JPY    Японська єна
скачать

Комментариев нет:

Отправить комментарий

В комментариях уважайте собеседника, внимательно читайте посты и не додумывайте. Просьбы и предложения из разряда: «можно ваш Skype/Viber/телефон», «напишите мне в vk/FB», а также другие им подобные — игнорируются. Выход новых версий ПО, внешняя ссылка, переставшая работать с течением времени и т.п. не является основанием для претензий. Желающие спокойно подискутировать и высказаться — Welcome. Желающие спонсировать блог — Donate. Нарушение этих простых правил ведет к бану и удалению комментариев без предупреждения.