Dynamická výměna dat

Úvod

Na Windows, OS / 2 a dalších operačních systémech (s vývojovými nástroji třetích stran) umožňuje dynamická výměna dat (DDE) sdílení dat nebo komunikaci mezi programem. Když například změníte tabulku v databázovém programu nebo když je datová položka na elektronické záložce, tabulka nebo datová položka také potřebuje provést odpovídající změnu v dalším softwaru, který můžete používat. DDE je meziprocesová komunikace se sdílenou pamětí jako veřejná přepínací oblast a poskytuje aplikaci sadu protokolů nebo příkazů a formát zprávy. DDE využívá model klient / server, ve kterém aplikace zpracovává data na klientovi, zatímco aplikace poskytuje data na serveru.

Princip fungování

Princip fungování DDE je:

Při přepínání dat se v režimu DDE vyměňují dva současně běžící programy, jakmile klient a server navážou spojení, pak bude zákazník okamžitě informován o změně dat na serveru. Kanál datového připojení vytvořený režimem DDE je obousměrný, to znamená, že zákazník může data na serveru nejen číst, ale i upravovat.

DDE a schránka podporují jak standardní datové formáty (jako je text, tečková matice atd.), ale také přizpůsobené datové formáty. Jejich mechanismy přenosu dat se však liší a jasný rozdíl je v tom, že operace schránky se téměř vždy používá jako jednorázová reakce na uživatelem určenou operaci, jako je výběr příkazů pro vložení z nabídky. Přestože DDE může spustit uživatel, pokračuje ve hře, obecně nemusí dále zasahovat.

, například:

Strana A použije globální paměť, poté umístí ukazatel paměti PostMessage na stranu B, strana B získá přístup ke globální paměti podle přijatého ukazatele. K tomu slouží několik funkcí API a v MSDN zkontrolujete funkci hlavy DDE. Protože je to technologie, která byla eliminována, ani MFC ho nezabalil. Je těžké zajistit, že se objeví i v budoucím Windows API.

Obsah

Dialog DDE je zamýšlen třemi identifikátory.

1, název aplikace: Název dvou stran dialogu DDE. Název komerční aplikace je uveden v dokumentaci k produktu. Název programu "Configuring King" běžícího systému je "view"; Název aplikace Microsoft Excel je "Excel"; Program Visual Basic používá název spustitelného souboru.

2, téma: Diskutovaná doména. Pro "Configuration King" je předmět zadán jako "tagname"; Název motivu aplikace Excel je název tabulky, například Sheetl, Sheet2, ...; Program Visual Basic, téma programu Visual Basic je určeno formou hodnoty vlastnosti LINKTOPIC. .

3, položka: Toto je konkrétní datový objekt, o kterém se diskutuje. V datovém slovníku "Configuring King" definují inženýři I/O proměnné a zároveň definují název projektu. Položka v Excelu je jednotka, například RLC2 (RLC2 představuje první řádek, druhý sloupec jednotku). Pro program Visual Basic je projektem konkrétní textové pole, název štítku nebo pole obrázku.

Metoda výměny

(1) Studené připojení (COOLLINK): Výměna dat je přenos dat na jedno použití, stejně jako schránka. Když se data na serveru změní, zákazník může kdykoli číst a zapisovat data ze serveru;

Dynamic data exchange

(2) WarmLink: Když se data na serveru změní, uvědomí o tom zákazníka ihned po změně dat. Když zákazník dostane upozornění, data se načtou;

(3) Hot connection: Když se data na serveru změní, bude to okamžitě informovat zákazníka, zatímco změněná data budou odeslána přímo zákazníkovi.

Klient DDE požaduje data do programu serveru DDE, musí nejprve znát název serveru (tj. název DDService), název tématu DDE (název tématu) a vědět, který název projektu požaduje kterou datovou položku (název položky). Název DDService by měl mít jedinečnost, jinak může snadno dojít k záměně. DDService je obvykle název programu serveru, ale ne absolutní, nastavuje ho programátor v programu, nikoli úpravou názvu programu. Název témat a název položek jsou také nastaveny službou DDeService a název služby všech serverů je registrován v systému. Když zákazník požaduje data na server, musí nahlásit název služby serveru a název témat. Pouze pokud je název služby, název témat konzistentní s názvy nastavenými serverem, systém sdělí požadavek klienta serveru.

Když je název služby konzistentní s názvem Topics, server okamžitě určí, zda je název Items legální. Pokud je požadovaný název položky legální datovou položkou na serveru, server je zřízen a server o tom uvědomí zákazníka včas po vytvoření dat. Server může mít více názvů témat a počet názvů položek není omezen.

Výměna DDE může probíhat mezi aplikacemi různých počítačů v jedné síti nebo v síti. Vývojáři mohou také definovat vlastní datové formáty DDE a speciální IPC mezi aplikacemi, které mají těsněji propojené komunikační požadavky. Většina aplikací pro Windows podporuje DDE. DDE má však značnou nevýhodu v tom, že je nízká efektivita komunikace a při velkém provozu je obnova dat pomalá a DDE je praktičtější, když je dat méně.

Program pro psaní

Pro usnadnění použití poskytuje společnost Microsoft knihovnu DDE Management (DDEML). DDEML se specializuje na koordinaci DDE komunikace, poskytuje DDE aplikacím manipulační řetězce a služby výměny dat, čímž eliminuje problémy způsobené protokoly Upper DDE.

Aplikace vyvinuté pomocí DDEML (Customer / Server) jsou lepší než aplikace DDEML z hlediska provozní konzistence nebo z hlediska programování. Aplikace DDEML navíc usnadňují vývoj aplikací DDE, protože DDEML (toto je DLL) funguje v Work of Office of Office. Po použití DDEML není většina relací mezi zákazníky a servery dosažena přímo, ale prostřednictvím DDEML, tj. pomocí funkce Callback ke zpracování transakcí DDE a včasného zasílání zpráv je přímo.

Před voláním dalších funkcí DDEML musí klient / server zavolat funkci DDeinitialize (), aby získal identifikátor instance, registroval funkci DDECALLBACK a specifikoval filtrování transakcí pro funkci Callback. Pro server po použití DDeinitialize () zavolejte DDecreateStringHandle () k vytvoření popisovače názvu služby, názvu témat a názvu položek a poté zaregistrujte server v operačním systému pomocí DDENAMESERVICE (). Na základě těchto úchytů mohou zákazníci využívat službu DDE, kterou poskytuje.

K provedení úlohy DDE vyžaduje mnoho funkcí DDEML přístup k řetězcům. Například: zákazník musí zadat název služby a název témat při volání funkce DDEConnect (), aby požádal o relaci se serverem. Konkrétní popisovač řetězce můžete získat voláním funkce DDecreateStringHandle (). Například:

HSZHSZSERVNAME = DDECREATESTRINGHANDLE (iDinst, "myserver", cp_winansi);

hszroszsystopic = ddecreateStringHandle (iDinst, szddesys_topic, cp_winansi);

aplikace Funkce zpětného volání DDE přijímá více popisovačů řetězce ve většině transakcí DDE. Například: Během zpracování transakce XTYP_REQUEST server DDE obdrží dva popisovače řetězců: identifikátor řetězec názvu tématu, jiný identifikátor řetězec názvu položky. Délku řetězce znaků odpovídající popisovači řetězce můžete získat voláním funkce DdeQueryString () a replikuje řetězec do vyrovnávací paměti definované aplikací. Například:

dwordidinst;

dwordcb;

HSZHSZSERV;

pstrpszservname;

cb = DDEQUERYSTRING (iDinst, HSZSERV, (LPSTR) NULL, 0, CP_WINANSI) +1;

pszservname = (pstr) Localalloc (LPTR, (UINT) CB);

DdeQueryString (iDinst, HSZSERV, PSZSERVNAME, CB, CP_WINANSI;

Podle Microsoft MSDN je stávající aplikace založená na zprávách DDE kompatibilní s aplikacemi DDEML, to znamená, že aplikace DDE založené na zprávách mohou být dialogem aplikace DDEML a transakcemi. Při použití DDEML musíte do souboru zdrojového souboru zahrnout hlavičkové soubory DDEML.h, připojit soubor user32.lib a zajistit správnou systémovou cestu k souboru DDEML.dll.

Související články
HORNÍ