Megosztás a következőn keresztül:


Tömbök, sztringek és mutatók használata

A Doctor program (lásd : \samples\rpc\doctor in the Platform Software Development Kit (SDK)) egy jó példa egy alkalmazásra, amely bemutatja a tömb- és sztringattribútumokkal kapcsolatos tervezési kompromisszumokat. A Doktor program egy kisebb mintaverziója egy ismertebb programnak, az Eliza-nak, amelyet Joseph Weizenbaum mesterségesintelligencia-kutató fejlesztett ki az MIT-nél az 1960-es években. A program egy terapeuta utánzásával, egyszerű mintaillesztés alkalmazásával reagál a természetes nyelvi bemenetre.

Az Eliza program a következő munkamenetet rögzítette.

Felhasználó Eliza
A férfiak mind egyformák. Milyen módon?
Mindig piszkálnak minket valami vagy más miatt. Gondolhat egy konkrét példára?
Nos, a barátom miatt jöttem ide. A barátod miatt jöttél ide.
Azt mondja, az idő nagy részét depressziós vagyok. Sajnálattal hallom, hogy depressziós vagy.
Igaz, boldogtalan vagyok. Gondolod, hogy az, ha idejössz, segít, hogy ne legyél boldogtalan?
Segítségre van szükségem; ez nagyon biztosnak tűnik. Mit jelentene önnek, ha segítségre lenne szüksége?
Talán megtanulhatnék kijönni az anyámmal. Meséljen többet a családjáról.
Anyám gondoskodik rólam. Ki gondoskodik még rólad a családodban?
Az apám. Az apád.
Bizonyos szempontból olyan vagy, mint az apám. Milyen hasonlóságot lát?

 

A Doktor program ügyféloldali és kiszolgálóoldali alkalmazásokra osztható. Az ügyféloldal kéri a beteget a bemenetre, és megjeleníti az orvos válaszát. A kiszolgálóoldal feldolgozza a beteg bemenetét, és létrehozza az orvos válaszát. Ez egy klasszikus példa egy ügyfél-kiszolgáló alkalmazásra: az ügyfél felelős a felhasználói interakcióért, miközben a kiszolgáló kezeli a kiterjedt számítási terhelést. A függvény nem sok adatot ad át és ad vissza, de mivel az adatok jelentős mennyiségű feldolgozást igényelhetnek, a kiszolgáló feldolgozza azokat.

A Doktor program egy karaktertömböt használ bemenetként, és kimenetként egy másik karaktertömböt ad vissza. Az alábbi táblázat négyféleképpen adja át a karaktertömböket az ügyfél és a kiszolgáló között, valamint az egyes megközelítések implementálásához szükséges attribútumokat és függvényeket.

Megközelítés Attribútumok vagy funkciók
Megszámolt karaktertömbök [ méret], [ hossz], [ hivatkozás]
Csonk által felügyelt karakterláncok [ sztring], [ referencia], midl_user_allocate a kiszolgálón
Stub által kezelt karakterláncok [ string], [ egyedi], midl_user_allocate az ügyfél- és szerveroldalon
Sztringet visszaadó függvény [ egyedi]

 

Az attribútumok ezen kombinációihoz társított korlátozásokon belül alternatív módszerekkel is elküldhet egy karaktertömböt az ügyfélről a kiszolgálóra, és egy másik karaktertömböt küldhet vissza a kiszolgálóról az ügyfélre.

Az alábbi témakörök bemutatják az ezen paraméterek kezelésére képes különböző interfészek közötti tervezési kompromisszumokat.