Funkcia %SetExtFuncDllName


Funkcia
Funkcia vymení dll súbor, ktorý bude volaný pri vykonávaní externých funkcií.
Deklarácia
%SetExtFuncDllName(
   TEXT in configDllName,
   TEXT in newDllName,
   BOOL in global
 )

Parametre
configDllName Meno dll súboru, ktorý je použitý v konfigurácii objektu typu Externá funkcia (záložka Parametre - parameter Dll súbor).
Ak je hodnota parametra "" (t.j. prázdny reťazec), zrušia sa všetky zmeny spôsobené predchádzajúcimi volaniami tejto funkcie v rozsahu platnosti. V tomto prípade sa hodnota parametra newDllName neberie do úvahy.
newDllName Nové meno dll súboru pre externé funkcie.
Ak je hodnota parametra "" (t.j. prázdny reťazec), zrušia sa všetky zmeny spôsobené predchádzajúcimi volaniami tejto funkcie v rozsahu platnosti.
global Platnosť výmeny dll súboru. Možné hodnoty:
  • @TRUE - globálna výmena, t.j. platí vo všetkých inštanciách všetkých skriptov v rámci procesu, ktorý funkciu vykonal ( D2000 EventHandler alebo D2000 HI)
  • @FALSE - lokálna výmena, t.j. platí len v rámci aktuálnej inštancie skriptu a zaniká jeho ukončením
Poznámka: Lokálna výmena má vyššiu prioritu ako globálna výmena.

Popis
Objekt typu Externá funkcia predstavuje v systéme D2000 väzbu na algoritmus implementovaný v dll súbore (knižnica). ESL a matematický aparát má zadefinovaný spôsob, ako tieto funkcie volať (vykonávať). Každá externá funkcia má v rámci svojej konfigurácie definovaný parameter DLL súbor identifikujúci dll súbor, v rámci ktorého je funkcia implementovaná. DLL súbor zvyčajne implementuje viacej algoritmov, a preto je v systéme D2000 vytvorená množina externých funkcií, ktoré zdieľajú jeden dll súbor.

V určitých prípadoch (napr. odskúšanie novej verzie dll) je potrebné, aby ESL skript v rámci vykonávania externých funkcií (bez potreby zásahu do konfigurácie objektov typu Externá funkcia) používal dočasne iný dll súbor ako je definovaný v konfigurácii. Funkcia %SetExtFuncDllName umožňuje jedným volaním zmeniť meno dll súboru pre všetky externé funkcie implementované v rámci jedného dll súboru (knižnice).

Funkcia tiež umožňuje zrušiť zmenu konkrétneho dll súboru alebo všetkých dll súborov.
Príklad 1
Volanie funkcie:

 %SetExtFuncDllName("original.dll", "test.dll", @FALSE) 

spôsobí, že nasledujúce volania objektov typu Externá funkcia, ktoré majú vo svojej konfigurácií definovaný dll súbor original.dll budú namiesto tohto dll súboru používať dll súbor test.dll. Zmena je platná len v rámci aktuálneho skriptu.

Nasledovné volanie zruší výmenu dll súboru
 
 %SetExtFuncDllName("original.dll", "", @FALSE) 

Príklad 2
Volanie funkcie:

 %SetExtFuncDllName("original.dll", "testGlobal.dll", @TRUE) 

spôsobí, že nasledujúce volania objektov typu Externá funkcia, ktoré majú vo svojej konfigurácií definovaný dll súbor original.dll budú namiesto tohto dll súboru používať dll súbor testGlobal.dll. Zmena je platná v rámci celého procesu (D2000 HI alebo D2000 Event Handler).
Nasledovné volanie zruší výmenu dll súboru
 
 %SetExtFuncDllName("original.dll", "", @TRUE) 

Príklad 3
Volanie funkcie:

 %SetExtFuncDllName("", "testGlobal.dll", @FALSE) 

zruší všetky presmerovania pre všetky externé funkcie, ktoré boli definované volaním funkcie s parametrom global=@FALSE v rámci aktuálneho skriptu.

A potom volanie funkcie:

 %SetExtFuncDllName("", "", @TRUE) 

zruší všetky presmerovania pre všetky externé funkcie , ktoré boli definované volaním funkcie s parametrom global=@TRUE v rámci celého procesu (D2000 HI alebo D2000 Event Handler).
Napíšte komentár