ES2243384T3 - Metodo para el tratamiento de cadenas de caracteres, sistema de tratamiento y programa objeto para ello. - Google Patents
Metodo para el tratamiento de cadenas de caracteres, sistema de tratamiento y programa objeto para ello.Info
- Publication number
- ES2243384T3 ES2243384T3 ES01130279T ES01130279T ES2243384T3 ES 2243384 T3 ES2243384 T3 ES 2243384T3 ES 01130279 T ES01130279 T ES 01130279T ES 01130279 T ES01130279 T ES 01130279T ES 2243384 T3 ES2243384 T3 ES 2243384T3
- Authority
- ES
- Spain
- Prior art keywords
- data
- string
- characters
- character string
- type
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
- G06F9/548—Object oriented; Remote method invocation [RMI]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/20—Point-of-sale [POS] network systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Finance (AREA)
- Stored Programmes (AREA)
- Cash Registers Or Receiving Machines (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Document Processing Apparatus (AREA)
- Communication Control (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Machine Translation (AREA)
- Programmable Controllers (AREA)
- Character Input (AREA)
- Processing Or Creating Images (AREA)
Abstract
Un método de procesar datos de cadenas de caracteres para hacer pasar una primera cadena de caracteres, declarada como un primer tipo de datos, a través de un objeto de interfaz (18) que se ejecuta bajo un sistema operativo de ordenador desde un primer objeto (11; 12) que sirve como objeto de cliente a un segundo objeto (12; 13) que sirve como un objeto de servidor para el primer objeto (11; 12) cuando se ejecuta un programa de aplicación (11), en el que los objetos de interfaz (18) convierten la primera cadena de caracteres en una segunda cadena de caracteres de un tipo de datos de cadena básico que contiene información de longitud de cadena y pasa la segunda cadena de caracteres al segundo objeto (12; 13), procesando el último la segunda cadena de caracteres declarada como cadena de tipo de datos de cadena básico.
Description
Método para el tratamiento de cadenas de
caracteres, sistema de tratamiento y programa objeto para ello.
La presente invención se refiere a un método y
sistema de procesar cadenas de caracteres que utilizan componentes
de objeto de software o de componentes lógicos.
Los programas basados en componentes (objetos)
escritos en un lenguaje de programación orientado a objetos, son
objetos lógicos reutilizables que se ejecutan en un sistema
operativo particular. Utilizando objetos se hace más fácil
desarrollar una variedad de sistemas y aplicaciones. El Modelo
Objeto de Componentes (COM) respaldado, por ejemplo, por el sistema
operativo Windows® de Microsoft es un sistema funcionalmente rico
que proporciona un entorno en el que las aplicaciones del cliente
(aplicaciones contenidas) pueden utilizar y compartir
ob-
jetos.
jetos.
Desarrollando sistemas basados en objetos de COM,
los productos de componentes lógicos se pueden suministrar como
partes reutilizables que permiten a usuarios individuales construir
sistemas personalizados y reducir costes de mantenimiento. Este
modelo de diseño permite también el desarrollo y la evolución
adicional de los activos de componentes lógicos existentes, que
hacen más fácil el desarrollo del sistema y reducen los costes de
desarrollo afines. La capacidad para desarrollar objetos en una
base de componentes también simplifica desarrollar un sistema
complejo que consiste en varios subsistemas o varios dispositivos
periféricos, y ha resultado esencial para el desarrollo sistemas que
funcionan bajo un entorno de red.
Un sistema de POS (Punto De Venta) es un tipo de
sistema que se ensambla a partir de una variedad de dispositivos
periféricos. Un sistema típico de POS comprende un dispositivo de
visualización, una impresora, escáner, cajón de efectivo, lector de
tarjetas, y otros dispositivos de entrada/salida conectados a un
ordenador personal u otro ordenador principal central. En los
documentos JP-A -9-106355 y
JP-A -9-73395, se pensó previamente
un sistema de POS basado en un ordenador personal flexible que
utilizaba objetos.
La Figura 1 muestra el concepto de un sistema 10
de POS de objetos distribuidos. Este sistema 10 de POS comprende un
programa 11 de aplicación de POS suministrado por el fabricante del
sistema; control de objetos (COA) 12 suministrado para el tipo
particular de dispositivo (clase de dispositivo), tal como impresora
21, escáner 22, cajón de efectivo 23, u otro tipo de dispositivos
periféricos; y objetos de servicio 13 (OS) suministrados para un
dispositivo particular. Para el programa 11 de aplicación del POS
para imprimir algo desde la impresora 21, se envían en primer lugar
datos al objeto de control de la impresora, luego al objeto de
servicio 13 para la marca o modelo de impresora desde la que se
imprimirán los datos, y después desde el sistema operativo (SO) 14
a la impresora
21.
21.
El programa 11 de aplicación de POS puede
utilizar también la pantalla de visualización 15, el teclado 16 y
otros recursos de elementos físicos (hardware) del ordenador
personal como dispositivos periféricos del programa 11 de
aplicación del POS a través del SO 14.
El sistema de control de objetos 19 que contiene
los objetos 12 de control y los objetos de servicio 13 en el sistema
10 de POS mostrado en la Figura 1 proporciona el programa 11 de
aplicación del POS con un interfaz que es independiente de los
dispositivos periféricos particulares (tal como la impresora 21).
Debido a que los objetos de control 12 se desarrollan para clases
de dispositivos particulares se crea una petición de objeto de
control por el COM soportado por el SO 14 cuando se ejecuta el
programa 11 de aplicación de POS. El objeto de servicio 13
proporciona un interfaz uniforme independiente del dispositivo
particular para el objeto de control 12; cuando un dispositivo
particular es llamado por el objeto de control 12, se crea una
petición de objeto de servicio y se vincula al programa 11 de
aplicación del POS.
En un sistema basado en COM, por ejemplo,
controles de ActiveX (controles de OLE) que pueden hacer regresar
eventos al programa 11, se puede utilizar para el objeto de control
12, y un servidor ActiveX (Servidor de Automatización OLE) se puede
utilizar como el objeto de servicio 13 que funciona como un servidor
para los controles ActiveX. El COM proporciona soporte para la
comunicación de datos entre objetos vinculados por automatización,
es decir, entre solicitudes de objetos vinculados con objeto de
ejecutar el programa de la aplicación. "Servidor de
Automatización" es un objeto de software (elementos lógicos) que
contiene propiedades y métodos, y "automatización" es un
mecanismo para difundir o manipular objetos.
La automatización es dependiente del interfaz
IDispatch COM, y la comunicación entre objetos se lleva a cabo
ejecutando el método Invoke (Invocar). IDispatch es un interfaz
para difundir controles ActiveX y métodos y propiedades de servidor
de ActiveX. para ser utilizado con un lenguaje de programación
compatible con COM. La biblioteca Microsoft Foundation Class (MFC),
que proporciona un entorno de desarrollo con una función de
automatización basada en Visual C++®, un lenguaje de programación
orientado a objetos editado por Microsoft, proporciona por lo tanto
la clase de base COIeDispatchDriver (objeto) para manipular las
complejidades para llamar la función Invoke desde el programa de
aplicación u objeto de cliente. Un objeto de cliente puede por
tanto enviar datos a un objeto de servidor llamando a InvokeHelper,
una función de miembro del objeto de interfaz derivada desde esta
clase de base. En otras palabras, con objeto de utilizar la función
Invoke, se debe ejecutar un procedimiento específico, y está
prevista una función InvokeHelper que contiene este procedimiento
predefinido para ayudar a llamar a la función Invoke. Este
procedimiento predefinido incluye, por ejemplo, leer argumentos de
una lista, y ejecutar un procedimiento basado en estos argumentos,
convirtiendo el resultado de Invoke en un método, o desechando
excepciones cuando se ejecuta un procedimiento ilegal.
La Figura 2 muestra en forma de esquema el flujo
de datos desde un programa 11 de aplicación POS a un dispositivo
(impresora) 21. Con objeto de imprimir datos de texto en la
impresora 21, el programa 11 de aplicación de POS llama al método
de impresión del objeto de control 12 de la impresora y pasa los
datos de texto al método de impresión. Con objeto de llamar al
método de objeto de servicio 13 para la impresora 21, el objeto de
control 12 llama a la función de miembro InvokeHelper de la clase
COIeDispatchDriver (el objeto de interfaz (IFO) 18). Los datos se
pasan luego a través del objeto de interfaz 18 al objeto de
servicio 13, y a través del SO 14 a la impresora 21.
Un problema es que si se presenta un carácter
nulo o no válido, (0x00 en anotación hexadecimal; todos los datos de
caracteres anotados más abajo también están en anotación
hexadecimal) tal como a veces está contenido en datos de código de
barras en los datos de texto (cadenas de caracteres), la cadena de
caracteres no se reproducirá en la impresora 21 del sistema 10 de
POS. El objeto de control 12 de la impresora en un sistema de POS
tiene típicamente un método PrintBarCode, y si se especifica una
cadena de datos que contiene un carácter nulo (0x00) como el
parámetro de datos del método PrintBarCode, la cadena de datos se
pasa por un procedimiento tal como sigue:
En primer lugar el programa 11 de aplicación del
POS envía la siguiente cadena A0 de caracteres al objeto de control
12.
- A0:
- 7B 41 00 30 31 32 33 34 35 36 37 38 39
El objeto de control 12 recibe la cadena de
caracteres A0 pero la recibe declarada como un tipo LPCTSTR. Un
LPCTSTR es un indicador hacia una cadena terminada como nula (0x00)
de 8 bit ANSI (Instituto Americano de Normas Nacionales), así como
una cadena de caracteres de Shift JIS (Normas Industriales
Japonesas) de caracteres definidos. Por lo tanto, en medio de la
cadena no se permite un carácter nulo o no válido (0x00). Cuando no
se trata imprimir datos de byte como datos de imagen en los
caracteres de imprimibles no está contenido el nulo (0x00) y los
datos de cadena de caracteres se declara generalmente como un tipo
LPCTSTR en el objeto de impresora.
No obstante, en un entorno COM, COM soporta
transferencias de datos aplicacion-objeto y
objeto-objeto con cadenas de caracteres que pasaron
a través de COM como cadenas BSTR, es decir cadenas básicas o
binarias que contienen una declaración de longitud de cadena
(contado de caracteres). La cadena A0 se convierte entonces
en
A1:
A1:
- A1:
- 0D 00 00 00 7B 41 00 31 32 33 34 35 36 37 38 39 00
Una cadena BSTR comienza entonces con la longitud
de cadena escrita en los primeros cuatro dígitos y termina con 00
(que no está incluido en la longitud de cadena (contado de
caracteres)). No obstante, nótese que este 00 no se utiliza como el
carácter de finalización. La memoria de datos se gestiona basada en
el número de caracteres desde el cursor de modo que incluso un nulo
(0x00) contenido en la cadena de caracteres se trata como datos de
carácter.
Con objeto de que el objeto de control 12 llame
al método de salida de impresora del objeto de servicio 13, primero
llama a la función de miembro InvoKeHelper de la clase
COIeDispatchDriver (objeto de interfaz 18 dispuesto como una
biblioteca MFC), e InvokeHelper llama a InvokeHelperV como
sigue:
Nulo
COIeDipatchDriver::InvokeHelperV(DISPID dwDispID, WORD
wflags, VARTYPE vtRet, Nulo* pvRet, const BYTE* pbParaminfo, va_list
argList)
donde los parámetros se definen
como
sigue:
\vskip1.000000\baselineskip
- - dwDispID:
- Identifica el método o propiedad a ser invocada.
- - wFlags:
- Marca que describe el contexto de la llamada a iDispatch::Invoke
- - vtRet
- Especifica el tipo del valor de retorno.
- - PvRet
- Dirección de la variable que recibirá el valor de propiedad o de retorno.
- - PbParaminfo:
- Indicador a una cadena de bytes finalizada en nulo que especifica los tipos de parámetros almacenados en la argList que sigue a pbParaminfo.
- - argList
- lista de parámetros
\newpage
COIeDipatchDriver::InvokeHelperV convierte
después una cadena de caracteres como sigue.
LPCSTR lpsz = va_arg(argList, LPSTR);
PArg->bstrVal=::SysAllocString(T2COLE(lpsz));
If (lpsz l = NULL && pArg->bstrVal = =
NULL)
- AfxThrowMemoryException();
PArg->vt = VT_BSTR;
Debido a que la cadena de caracteres lpsz pasada
desde el objeto de control 12 se representa por un JIS Shift de
8-bit o dígitos binarios LPCTSTR (carácter
multiocteto), se selecciona automáticamente la macro T2COLE de
conversión de caracteres y loscaracteres se convierten a caracteres
de 16 bit de amplitud (Unicode), el tipo de cadena de transferencia
básico pasado por COM T2COLE se define como un modelo de biblioteca
(ATL: Biblioteca de Plantilla Activa) para crear controles ActiveX
utilizando Visual C + +.
La primera línea anterior lee los parámetros de
datos de la lista de parámetros, y los datos después se convierten
realmente por la siguiente línea. La macro T2COLE llama a la
función AfxA2Whelper en la que MultiByteTo Wide Char convierte los
datos en caracteres extendidos como se muestra abajo.
- A2:
- 78 00 41 00 00 00
Es decir, debido a que el objeto de control 12
representa la cadena de caracteres que utiliza un tipo LPCTSTR
terminada en nulo, los caracteres nulos (0x00) contenidos en medio
de la cadena de caracteres se interpretan como una cadena de
caracteres que termina. El resultado es una cadena de un tipo de
caracteres extendidos (LPCTSTR) que no contiene ningún dato a
continuación de 00 y que borra todo a continuación de 00. La cadena
de caracteres se convierte entonces mediante SysAllocString en un
tipo BSTR que contiene datos acerca del número de caracteres
(actualmente octetos) en la cadena, que se pasan a través de COM al
objeto 13 de servicio,
Los datos pasados al objeto de servicio 13
después de haberse añadido los cuatro octetos de longitud de cadena
son por tanto:
- A3:
- 04 00 00 00 7B 00 41 00 00 00
Del mismo modo que el objeto de control 12, el
objeto de servicio 13 utiliza también LPCTSTR para representar datos
de caracteres, y recibe datos en unidades de 8 dígitos binarios
según el tipo de datos de cadenas de caracteres representado por
COM. El objeto de servicio recibe por tanto:
- A4:
- 7B 41 00
Por lo tanto, la impresora 21 controlada por el
objeto de servicio 13 no es capaz de imprimir los datos
especificados por el programa de aplicación 11, y solo imprime
parte de los datos especificados (esto es, los datos recibidos, A4).
Mientras los datos de cadena enviados por COM son de tipo BSTR y la
cadena de caracteres A4 se puede lanzar y procesar como un tipo
BSTR, los datos en la memoria solo contienen la información de la
longitud de la cadena del tipo BSTR como se muestra más abajo, y
los datos omitidos se pierden cuando se transfieren desde el objeto
de control.
- A5:
- 02 00 00 00 7B 41 00
Por tanto resultará evidente que si el objeto de
control 12 recibe datos de cadena declarados como tipo LPCTSTR que
contienen un carácter nulo (0x00) desde el programa 11 de aplicación
de POS, estos datos de cadena no se pueden enviar al objeto de
servicio 13 ni entregarse adecuadamente en la impresora 21.
Además, cambiar el tipo de datos de cadena
declarado en el objeto de control o en el objeto de servicio no se
puede utilizar en un sistema POS orientado a objetos que desea
proporcionar un interfaz uniforme al programa de aplicación y
unificar los parámetros intercambiados entre objetos y entre el
programa de aplicación y objetos. Tampoco es deseable desde la
perspectiva de proteger los activos de elementos lógicos actuales
del usuario.
Hay métodos para convertir nulos (0x00) por la
fuerza que utilizan conversión binaria para otros valores antes de
transferir datos, y restaurando luego nulos (0x00) en un objeto
siguiente. Además de que son complicados, no obstante, los
procedimientos de conversión utilizados por los diferentes objetos
deben coincidir y por lo tanto el objeto que se recibe es
dependiente del diseño (funcionamiento) del objeto que se envía.
Obviamente esto es contradictorio con uno de los fines de la
programación orientada a objetos, es decir, mejorar la
reutilización y la modularidad del software, Con mayor detalle,
todavía, si el objeto que se recibe no puede procesar los datos
convertidos a binario, podría entregar una cadena de caracteres
completamente diferentes.
Por tanto, procesar datos de cadenas de
caracteres que contienen nulos (0x00) presenta algunos problemas
difíciles. No obstante, con objeto de construir un sistema POS
capaz de manipular códigos de barras y otros tipos de datos
diferentes, es necesario estar capacitado para enviar con precisión
datos de caracteres que contengan nulos (0x00) a los objetos de
servicio para entregarlos por una impresora u otro dispositivo.
El documento EP 0762 273 A1 describe un método y
un sistema según la porción caracterizadora de las reivindicaciones
1 y 5, respectivamente. Esta técnica anterior implica los problemas
explicados en detalle más arriba.
Por tanto es un objeto de la presente invención
proporcionar un método que procesa datos de caracteres, un sistema
de procesamiento, y un programa mediante el cual se pueden enviar
de manera precisa entre objetos incluso cuando la cadena de
caracteres contiene datos nulos (0x00), sin cambiar la declaración
de tipo de cadena de caracteres del objeto de control o del objeto
de servicio o realizando otras operaciones complicadas.
Este objeto se logra mediante un método, sistema
y programa como se reivindica en las reivindicaciones 1, 5 y 9,
respectivamente. Las realizaciones preferidas de la invención son
objeto de las reivindicaciones dependientes.
El número de caracteres efectivo que incluyen los
datos nulos (0x00) contenidos en cadena de caracteres pasada como
cadena de un primer tipo de datos desde el primer objeto al objeto
de interfaz se puede determinar procesando la cadena de caracteres
como un tipo de datos de cadena básica que contienen información de
longitud de cadena permitiendo de ese modo el número de caracteres a
ser contados en la cadena, incluyendo caracteres nulos (0X00), sin
tener en cuenta el tipo de primeros datos declarados por el primer
objeto. Además, convirtiendo solo el número real de caracteres de
la primera cadena de caracteres, en una segunda cadena de
caracteres que se puede pasar por el sistema operativo, una cadena
de caracteres que contiene caracteres nulos (0x00) que se pueden
pasar fiablemente sin los caracteres nulos (0x00) que termina la
cadena. Los datos de la cadena de caracteres que contienen nulos
(0x00) se pueden pasar entonces de manera fiable entre objetos
incluso en sistemas integrados o arquitecturas, tales como COM, que
solo soportan que pasen entre objetos tipos estandarizados de datos
de cadenas de caracteres.
El tipo de datos de cadena básica es un tipo de
datos que contiene información de longitud de cadena, tal como el
tipo BSTR de datos de canales soportado por COM.
Los problemas de transferencia de datos
anteriores no se limitan a la comunicación objeto a objeto, y
también se producen cuando se hacen pasar datos entre programas de
aplicación y objetos. Estos problemas se producen entonces cuando
el programa de aplicación está escrito, por ejemplo, utilizando MFC
en visual C++.(Nótese que estos problemas no se presentan cuando el
programa de aplicación está escrito con Visual Basic® publicado por
Microsoft debido a que MFC no se utiliza por tales lenguajes de
programación). Por tanto, el primer objeto es el programa de
aplicación o un objeto de control de clase de dispositivo
periférico; y el segundo objeto es un objeto de control o un objeto
de servicio de dispositivo periférico. Por tanto la presente
invención se puede aplicar a programas de aplicación haciendo al
programa de aplicación el primer objeto. Por lo tanto, un objeto
como se utiliza más adelante incluye ejemplos de objetos enlazados
por el mecanismo vinculante COM cuando se ejecuta el programa de
aplicación, y a no ser que se haga notar específicamente otra cosa
no se hace distinción entre un objeto y un ejemplo.
El método y el sistema de procesar datos de
cadena de caracteres de la presente invención puede por tanto pasar,
de manera fiable entre objetos, datos de cadena de caracteres que
contienen en la cadena, incluso cuando el tipo de cadena de
caracteres declarado por un objeto supone que en la cadena no se
contiene ningún dato nulo (0x00). El método y el sistema de la
invención pueden por tanto procesar datos de códigos de barras y
otros datos de cadenas de caracteres que podrían contener datos
nulos (0x00) sin cambiar el tipo de datos habitualmente declarados
por el objeto. Un sistema POS basado en objetos que puede manipular
fiablemente datos de código de barras y otros diversos tipos de
datos puede estar provisto por tanto mediante la presente
invención.
Otros objetos y logros junto con un entendimiento
más completo de la invención resultará evidente y apreciado haciendo
referencia a la siguiente descripción de realizaciones preferidas
tomada junto con los dibujos que se acompañan en los que:
la Figura 1 describe el concepto de un objeto de
servicio basado en un sistema POS;
la Figura 2 muestra el proceso para transferir
cadenas de caracteres entre un programa de aplicación y objetos;
y
la Figura 3 muestra el concepto de la presente
invención para procesar objetos de control, objetos de interfaz, y
objetos de servicio.
La presente invención se describe más abajo
basada en sistema POS 10 construida a partir de objetos distribuidos
como se describe con relación a la Figura 1 y a la Figura 2. Con
objeto de aplicar la presente invención a un sistema POS 10 es
necesario en primer lugar derivar un objeto de interfaz de clase
CCoOleDispatchDriver desde la clase MFC COleDispatchDriver, luego
dejar a un lado la parte de conversión de datos del objeto de
interfaz como sigue:
\newpage
LPCSTR lpsz = va_arg(argList, LPSTR);
long lLen =
::SysStringByteLen((BSTR)lpsz);
long lDestLen = lLen + 1;
LPWSTR pWideChar =
(LPWSTR)CoTaskMemAlloc(IdestLen * 2 *
sizeof(WCHAR));
long lTrueLen;
if(ILen)
- {
- lTruelen = MultiByteToWideChar(CP_ACP, 0 ,lpsz, lLen, pWideChar, lLen);
- }
else
- {
- lTruelen = MultiByteToWideChar(CP_ACP, 0 ,lpsz, 0, pWideChar, lDestLen);
- }
pArg->bstrVal =
::SysAllocStringLen(pWideChar, ITrueLen);
CoTaskMemFree((void*)pWideChar);
If (lpsz I = NULL && pArg->bstrVal = =
NULL)
- AfxThrowMemoryException();
PArg->vt = VT_BSTR;
Este proceso de conversión de datos funciona como
sigue. En primer lugar el parámetro de la cadena de caracteres se
lee desde la lista de parámetros argList y se asigna a la cadena
lpsz del tipo LPCSTR. Las siguientes líneas seleccionan la cadena
lpsz como tipo BSTR, y determinan la longitud (contado de
caracteres) de la cadena de caracteres, incluyendo cualquiera de
los caracteres nulos (0x00) que pudiesen estar presentes en la
cadena. Para asegurar que la longitud de la cadena lLen nunca sea
0, se añade 1 a lLen, y se reserva memoria para convertir la cadena
de caracteres a caracteres extendidos, es decir, caracteres Unicode
(el código de caracteres estándar utilizados por COM). La cadena
lpsz se convierte entonces a caracteres extendidos utilizando la
longitud de cadena especificada por ILen, y el resultado se guarda
como cadena de caracteres extendidos pWideChar tipo LPWSTR.
La cadena se convierte después a parámetro pArg
tipo BSTR, utilizando la longitud de cadena especificada por ILen,
para transferirla al objeto de servicio a través de COM. Después de
terminarse la conversión, se libera la memoria reservada para la
conversión de caracteres extendidos. Se deshecha una excepción si se
encuentra un parámetro ilegal. La cadena de caracteres pArg pasada
al objeto de servicio se establece entonces como tipo BSTR.
La configuración completa del sistema POS 30 es
por tanto la misma que se muestra en la Figura 1, pero los datos se
manejan como se muestra en la Figura 3 en el objeto de control 32,
en el objeto de interfaz 38, y en el objeto de servicio 33. Cuando
el programa de aplicación 11 solicita en la operación 51 el método
PrintBarCode, que es un método para imprimir un código de barras, y
hace pasar una cadena de caracteres A0 que contiene datos nulos
(0x00) como se muestra más abajo, el objeto de control 32 recibe
una cadena de caracteres A1 tipo BSTR como se muestra más abajo.
- A0
- 7B 41 00 30 31 32 33 34 35 36 37 38 39
- A1
- 0D 00 00 00 7B 41 00 30 31 32 33 34 35 36 37 38 39 00
Con objeto de hacer pasar la cadena de caracteres
del código de barras al objeto de servicio, el objeto de control
solicita la función InvokeHelperV clase CCoOleDispatchDriver, que es
un objeto de interfaz 38 que deja a un lado la función de
conversión como se describió anteriormente, en vez de invocar
ColeDispatchDriver.
void
CcoOleDispatchDriver::InvokeHelperV(DISPID dwDispID, WORD
wFlags, VARTYPE vtRet, Void* pvRet, const BYTE* pbParamInfo,
va_list argList)
Como se muestra más arriba, el objeto de interfaz
38 recibe una cadena lpsz declarada como tipo LPCTSTR desde el
objeto de control 32, pero desecha la cadena lpsz como tipo BSTR
para detectar la longitud de cadena (operación 53). El objeto de
interfaz 38 convierte entonces la cadena en caracteres extendidos
sin disminuir la longitud de cadena de datos para transferirla a
través de COM (operación 54), y entonces establece el parámetro
pArg transferido al objeto de servicio 33 basado en la cadena de
caracteres extendidos tipo BSTR (operación 55). El objeto de
interfaz 38 en esta realización envía por tanto una cadena de
caracteres como se muestra más abajo.
En primer lugar, la cadena de caracteres A1 se
convierte en la cadena de caracteres A2' en la operación 54
especificando la longitud de cadena convirtiendo después la cadena
en caracteres extendidos utilizando la función de conversión de
cadena MultiByteToWideChar.
- A2':
- 7B 00 41 00 00 00 30 00 31 00 32 00 33 00 34 00 35 00 36 00 37 00 38 00 39 00
En esta realización todos los datos que siguen al
nulo (0x00) en la cadena A1 se convierten también en caracteres
extendidos, en contraste a la anterior cadena A2 convertida de
forma habitual, como resultado de declarar la longitud de la cadena
A1. Esta cadena de caracteres ampliados se convierte entonces en la
operación 55 por la macro de conversión de caracteres
SysAllocStringLen en cadena A3' tipo BSTR de caracteres Unicode
para transferirse por
COM
COM
- A3':
- 1A 00 00 00 7B 00 41 00 00 00 30 00 31 00 32 00 33 00 34 00 35 00 36 00 37 00 38 00 39 00 00 00
Como resultado de este proceso de conversión
todos los datos de cadena suministrados por el programa de
aplicación 11 POS que incluye nulos (0x00), se hace pasar al objeto
de servicio 33.
No obstante el objeto de servicio 33 recibe la
siguiente cadena A4 porque el parámetro pData para recibir los datos
de cadena se declara como tipo LPCTSTR terminado en nulo.
- A4:
- 7B 41 00
Resultará obvio que si la cadena de caracteres se
manipula como la declarada tipo LPCTSTR, todos los datos que siguen
al nulo (0x00) se dejarán caer y no se podrán procesar. No
obstante, cuando la cadena de datos se hace pasar por COM como se
ha descrito anteriormente, los datos se pasan en la memoria como un
tipo BSTR para el objeto que recibe. Esto significa que en el
objeto de servicio el tipo de parámetro se declara simplemente como
LPCTSTR por el prototipo de función (definición de tipo de función)
y los datos reales son tipo BSTR. Los datos reales en la memoria
antes y después de la cadena A4 es como A5' como se muestra más
abajo.
- A5':
- 0D 00 00 00 7B 41 00 30 31 32 33 34 35 36 37 38 39 00
El objeto de servicio 33 procesa por lo tanto el
parámetro pData declarado como tipo LPCTSTR como datos tipo BSTR en
la operación 56.
lDataLen =
SysStringByteLen((BSTR)pData);
CString strBinaryDate (pData, IdataLen);
Es decir, el parámetro pData declarado como tipo
LPCTSTR se selecciona como tipo BSTR, se detecta la longitud de
cadena, y la variable strBinaryData clase MFC Cstring se establece
para imprimir como pData de longitud de cadena lDataLen. Como
resultado de esto, se envía una cadena de caracteres que contiene
nulos (0x00) suministrada desde el programa de aplicación POS 11
desde el objeto de servicio 33 a la impresora sin quitar nulos
(0x00) y lo siguientes datos, y por tanto se puede producir una
señal desde la impresora.
Aunque el objeto de interfaz 38 para hacer pasar
datos desde el objeto de control 32 al objeto de servicio 33 a
través de COM se deriva así de una clase base de MFC, se puede
seleccionar una cadena de caracteres terminada en nulo de tipo
LPCTSTR como datos tipo BSTR que contienen información de longitud
de cadena que también puede contener el carácter nulo (00) de modo
que se puede determinar el número real de caracteres (longitud de
cadena efectiva). Por consiguiente, ese número de caracteres se
puede convertir en caracteres extendidos independientemente del tipo
de cadena LPCTSTR, y los datos se pueden convertir de esta manera
en una cadena Unicode estándar manipulada por COM.
Por tanto, resultará obvio que la presente
invención puede hacer pasar entre objetos datos de cadena de
caracteres que contengan nulos (0x00) en los que un objeto de
interfaz habitual derivado de una clase MFC quita todos los datos
que siguen al nulo (0x00) cuando los datos se han hecho pasar por
COM entre objetos si los datos se declararon como un tipo LPCTSTR u
otra cadena de datos terminada en nulos. Este es también el caso
cuando el programador de un programa de aplicación utiliza un
objeto de interfaz derivado de una clase MFC en vez de ordenar un
mecanismo para solicitar un método, por ejemplo, a través de COM),
es decir, utilizando el objeto de interfaz de la presente
invención, el programa de aplicación puede enviar datos que incluyan
nulos (0x00) al objeto de control sin dejar caer nulos (0x00) y los
datos siguientes.
Tampoco es necesario cambiar las especificaciones
de un sistema de control POS de objetos distribuido que proporciona
un API uniforme al programa de aplicación puesto que los problemas
habitualmente relacionados con datos nulos (0x00) se pueden
prevenir en los objetos de control y objetos de servicio cuando la
cadena de caracteres se declara como tipo LPSTSTR. La presente
invención permite así al suministrador del programa de aplicación y
al usuario del programa tener la ventaja de un sistema de control
POS que puede manipular de manera fiable datos de cadena que
contienen nulos (0x00) sin desperdiciar recursos de elementos
lógicos existentes.
Como se ha hecho notar anteriormente, hay métodos
por los cuales un objeto de interfaz habitual puede manipular a la
fuerza datos de cadena que contienen nulos (0x00) utilizando
conversión binaria para convertir a la fuerza nulos (0x00) en otros
valores, se envían los datos convertidos a otro objeto, y el objeto
que se recibe restaura entonces los nulos (0x00). No obstante, no
solo esto es un procedimiento complicado, las operaciones de
conversión de enviar y recibir objetos se deben adaptar, y los
objetos que se reciben resultan dependientes respecto al objeto que
se envía. No obstante, esta técnica es difícil de implantar, debido
a que es contradictoria a la modularización de los elementos
lógicos y a los objetivos de reutilización de programación orientada
a objetos. Además si el objeto que se recibe no puede manipular
datos convertidos binarios, podría dar salida a una cadena
completamente diferente.
No obstante, con el método de la invención
descrito anteriormente se pueden hacer pasar al siguiente objeto los
nulos (0x00) y los datos siguientes sin conversión binaria. Por
consiguiente, los datos se pueden procesar por el objeto receptor
como datos de cadena terminada en nulos, o los datos se pueden
seleccionar y procesar como un tipo BSTR que contiene nulos (0x00).
Por ejemplo un método para manipular datos de cadena que no
contendrán nunca datos binarios puede procesar los datos como una
cadena terminada en nulos, mientras que un método que podría
encontrar datos binarios selecciona los datos de cadena como tipo
BSTR para procesarlos. Por tanto se puede proporcionar un sistema
de control que puede manipular datos nulos (0x00) aunque no tenga
efecto en objetos existentes.
El objeto de control 32, el objeto de servicio
33, y el objeto de interfaz 38 de este sistema de control POS 39 se
pueden grabar en un disco compacto (CD) u otro tipo de medio de
almacenamiento de datos legible en ordenador como un programa de
ordenador que tiene comandos para ejecutar las diversas operaciones
mostradas en la Figura 3. Instalando el programa en la memoria
gestionado por el SO 14 del ordenador y solicitando los métodos y
propiedades de los objetos, se generan y limitan ejemplos de los
objetos para ejecutar los procedimientos de programa de aplicación
deseada.
Se debe hacer notar que mientras que la invención
se ha descrito con relación a un sistema POS como ilustrativo de una
aplicación con una elevada probabilidad de procesar realmente datos
nulos (0x00) debido a la amplia gama de códigos de barras y otros
datos manipulados por el sistema POS típico, la invención no está
limitada a un sistema POS y obviamente se puede utilizar con otros
sistemas que manipulan datos de cadena.
Como se apreciará de la descripción precedente,
la presente invención permite datos de cadena que contengan nulos en
la cadena para ser pasados de manera precisa y fiable entre objetos
sin utilizar la conversión binaria para convertir los datos de
cadena a un formato especial. Por consiguiente la presente invención
puede proporcionar como un objeto de servicio un método y un
sistema para procesar datos de cadena, tales como datos de código
de barras, que contengan nulos (0x00) dentro de la cadena. La
invención puede proporcionar además unos medios de desarrollo de
elementos lógicos que permitan a un sistema POS u otro sistema que
manipule potencialmente una variedad de tipos de datos.
Claims (13)
1. Un método de procesar datos de cadenas de
caracteres para hacer pasar una primera cadena de caracteres,
declarada como un primer tipo de datos, a través de un objeto de
interfaz (18) que se ejecuta bajo un sistema operativo de ordenador
desde un primer objeto (11; 12) que sirve como objeto de cliente a
un segundo objeto (12; 13) que sirve como un objeto de servidor para
el primer objeto (11; 12) cuando se ejecuta un programa de
aplicación (11), en el que los objetos de interfaz (18) convierten
la primera cadena de caracteres en una segunda cadena de caracteres
de un tipo de datos de cadena básico que contiene información de
longitud de cadena y pasa la segunda cadena de caracteres al segundo
objeto (12; 13), procesando el último la segunda cadena de
caracteres declarada como cadena de tipo de datos de cadena
básico;
caracterizado por;
cambiar, en el objeto de interfaz (18), el tipo
de datos declarado de la primera cadena de caracteres de dicho
primer tipo de datos a dicho tipo de datos de cadena básica que
contienen información de la longitud de cadena, de tal manera que
el número de caracteres que incluyen datos nulos en la primera
cadena de caracteres se puede contar independientemente de dicho
primer tipo de datos, detectando con posterioridad un nuevo
efectivo de caracteres en la primera cadena de caracteres, y
convirtiendo después el número efectivo de caracteres en la primera
cadena de caracteres en dicha segunda cadena de caracteres que se
pueden hacer pasar por el sistema operativo.
2. El método de la reivindicación 1, en el que el
programa de aplicación (11) puede procesar datos de cadenas de
caracteres que contienen datos nulos;
el primer objeto (11; 12) es el programa de
aplicación (11) o un objeto de control (12) de clase de dispositivo
periférico, siendo capaz el dispositivo periférico (21) de procesar
datos de cadena de caracteres; y
el segundo objeto (12; 13) es un objeto de
control (12) de clase de dispositivo periférico o un objeto de
servicio (13) de dispositivo periférico,
en el que un objeto de control (12) de clase de
dispositivo periférico es un ejemplo de una clase para controlar
diversos dispositivos periféricos de un ordenador y un objeto de
servicio (13) de dispositivo periférico es un ejemplo de una clase
para controlar un dispositivo periférico particular del
ordenador.
3. El método de la reivindicación 2, en el que
los datos de la cadena de caracteres son datos de código de
barras.
4. El método de la reivindicación 2, en el que el
programa de aplicación (11) es un programa de aplicación POS.
5. Un sistema de procesar datos de cadenas de
caracteres que comprende un primer objeto (11; 12) que sirve como un
objeto de cliente, un segundo objeto (12;13) que sirve como objeto
de servidor con respecto al primer objeto (11;12) y un objeto de
interfaz (18) para pasar una primera cadena de caracteres desde el
primer objeto (11; 12) al segundo objeto (12; 13) tras la ejecución
de un programa de aplicación (11), en el que el objeto de interfaz
(18) está adaptado para convertir la primera cadena de caracteres en
una segunda cadena de caracteres de un tipo de datos de cadena
básico que contiene información de longitud de cadena y para pasar
la segunda cadena de caracteres al segundo objeto (12; 13), estando
adaptado el último para procesar la segunda cadena de caracteres
declarada como cadena de tipo de datos de cadena básico;
caracterizado porque el objeto de interfaz
(18) comprende medios para cambiar el tipo de datos declarado de la
primera cadena de caracteres de dicho primer tipo de datos a dicho
tipo de datos de cadena básico que contiene información de longitud
de cadena, de modo que el número de caracteres que incluyen datos
nulos en la cadena de caracteres se puede contar independientemente
de dicho primer tipo de datos, detectándose un número efectivo de
caracteres en la primera cadena de caracteres así cambiada, y
convirtiendo el número efectivo de caracteres en la primera cadena
de caracteres en dicha segunda cadena de caracteres que se puede
hacer pasar por el sistema opera-
tivo.
tivo.
6. El sistema de la reivindicación 5 para
utilizarlo con un programa de aplicación (11) que puede procesar
datos de cadenas de caracteres que contengan datos nulos; en el
que
el primer objeto es el programa de aplicación
(11) o un objeto de control (12) de clase de dispositivo
periférico, estando capacitado el dispositivo periférico (21) para
procesar datos de cadena de caracteres; y
el segundo objeto es un objeto de control (12) de
clase de dispositivo periférico o un objeto de servicio (13) de
dispositivo periférico, en el que un objeto de control (12) de
clase de dispositivo periférico es un ejemplo de una clase para
controlar varios dispositivos periféricos de un ordenador y un
objeto de servicio (13) de dispositivo periférico es un ejemplo de
una clase para controlar un dispositivo periférico particular del
ordenador.
7. El sistema de la reivindicación 6, en el que
los datos de la cadena de caracteres son datos de código de
barras.
8. El sistema de la reivindicación 6, en el que
el programa de la aplicación (11) es un programa de aplicación de
POS.
9. Un programa de ordenador que comprende una
primera porción de código, una segunda porción de código y una
porción de código de interfaz que, cuando se ejecuta en un sistema
procesador de datos, implementa un primer objeto (11; 12) que sirve
como un objeto de cliente, un segundo objeto (12; 13) que sirve como
un objeto de servidor para el primer objeto (11;12) y un objeto de
interfaz (18), respectivamente, en el que
dicho primer objeto (11; 12) hace pasar una
primera cadena de caracteres, declarada como un primer tipo de
datos, a dicho segundo objeto (12; 13) invocando a dicho objeto de
interfaz (18), comprendiendo dicho paso una orden ejecutable para
ejecutar un procedimiento que invoque al objeto de interfaz
(18);
dicho objeto de interfaz (18) convierte la
primera cadena de caracteres en una segunda cadena de caracteres de
un tipo de datos de cadena básico que contiene información de
longitud de cadena, y hace pasar la segunda cadena de caracteres al
segundo objeto (12; 13), procesando el último la segunda cadena de
caracteres declarada como cadena de tipo de datos de cadena
básico;
caracterizado porque el objeto de interfaz
(18) cambia el tipo de datos declarado de la primera cadena de
caracteres de dicho primer tipo de datos a dicho tipo de datos de
cadena básico que contiene información de longitud de cadena, de tal
manera que el número de caracteres que incluye datos nulos en los
datos de la cadena de caracteres se pueden contar
independientemente de dicho primer tipo de datos, luego detecta un
número efectivo de caracteres en la primera cadena de caracteres, y
convierte el número efectivo de caracteres de la primera cadena de
caracteres en dichos segundos datos de cadena de caracteres que se
pueden hacer pasar por el sistema operativo.
10. El programa de la reivindicación 9, en el que
el primer objeto (11; 12) es un programa de aplicación .(11) capaz
de procesar datos de cadenas de caracteres que contienen datos
nulos, o un objeto de control (12) de la clase de dispositivo
periférico, el dispositivo periférico (21) está capacitado para
procesar datos de cadena de caracteres, en el que un objeto de
control (12) de clase de dispositivo periférico es un ejemplo de
una clase para controlar diversos dispositivos periféricos de un
ordenador.
11. El programa de las reivindicaciones 9 ó 10,
en el que los datos de la cadena de caracteres son un código de
barras, y el programa de aplicación (11) es un programa de
aplicación de POS.
12. El programa de la reivindicación 9, 10 u 11,
en el que el segundo objeto (12, 13) es un objeto de control (12)
de clase de dispositivo periférico, estando capacitado el
dispositivo periférico (21) para procesar datos de cadena de
caracteres, o un objeto de servicio (13) de dispositivo periférico,
en el que un objeto de control (12) de clase de dispositivo
periférico es un ejemplo de una clase para controlar diversos
dispositivos periféricos de un ordenador y un objeto de servicio
(13) de dispositivo periférico es un ejemplo de una clase para
controlar un dispositivo periférico particular del ordenador.
13. Un medio de almacenamiento de datos legible
por ordenador que lleva un programa como se describe en cualesquiera
de las reivindicaciones 9 a 12.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2000403300 | 2000-12-28 | ||
| JP2000403300A JP3915876B2 (ja) | 2000-12-28 | 2000-12-28 | 文字列データの処理方法および処理装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2243384T3 true ES2243384T3 (es) | 2005-12-01 |
Family
ID=18867453
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES01130279T Expired - Lifetime ES2243384T3 (es) | 2000-12-28 | 2001-12-20 | Metodo para el tratamiento de cadenas de caracteres, sistema de tratamiento y programa objeto para ello. |
Country Status (8)
| Country | Link |
|---|---|
| US (1) | US7055155B2 (es) |
| EP (1) | EP1220093B1 (es) |
| JP (1) | JP3915876B2 (es) |
| KR (1) | KR100600217B1 (es) |
| CN (1) | CN1149471C (es) |
| AT (1) | ATE299606T1 (es) |
| DE (1) | DE60111916T2 (es) |
| ES (1) | ES2243384T3 (es) |
Families Citing this family (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8055483B1 (en) * | 2005-11-28 | 2011-11-08 | The Mathworks, Inc. | System and method for performing hybrid expression evaluation |
| JP2010277440A (ja) * | 2009-05-29 | 2010-12-09 | Internatl Business Mach Corp <Ibm> | プログラム実行時における文字列の処理を最適化する方法、並びにそのコンピュータ・システム及びコンピュータ・プログラム |
| CN102915215B (zh) | 2011-08-03 | 2015-05-27 | 精工爱普生株式会社 | 控制装置以及控制方法 |
| JP5906620B2 (ja) * | 2011-09-08 | 2016-04-20 | セイコーエプソン株式会社 | 制御装置の制御方法 |
| CN105242932B (zh) * | 2015-10-21 | 2018-08-31 | 宁波三星医疗电气股份有限公司 | 一种基于delphi工具开发的软件的自动翻译方法 |
| CN112307034B (zh) * | 2020-11-23 | 2023-02-07 | 华立科技股份有限公司 | 一种集中器的数据收集方法及相关装置 |
| CN117973317B (zh) * | 2024-03-29 | 2024-06-07 | 恒生电子股份有限公司 | 字符串信息处理方法、装置、电子设备及存储介质 |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5263162A (en) * | 1990-11-07 | 1993-11-16 | Hewlett-Packard Company | Method of validating a label translation configuration by parsing a real expression describing the translation configuration |
| JPH0973395A (ja) | 1995-09-06 | 1997-03-18 | Seiko Epson Corp | 複数のオブジェクトを用いた制御システム、その構築方法および周辺装置制御システム |
| US6108717A (en) * | 1995-09-06 | 2000-08-22 | Seiko Epson Corporation | Control system using plural objects, a programming method therefor, and a peripheral devices control system |
| JPH09106355A (ja) | 1995-10-12 | 1997-04-22 | Seiko Epson Corp | 複数のオブジェクトを用いた制御システム、その構築方法および周辺装置制御システム |
| GB2330222B (en) | 1997-10-08 | 2003-03-05 | Mitel Corp | Methods of Communicating Control and/or Data Sginals Between First and Second Data processing Environments |
| US6633923B1 (en) * | 1999-01-29 | 2003-10-14 | Iona Technologies Inc. | Method and system for dynamic configuration of interceptors in a client-server environment |
-
2000
- 2000-12-28 JP JP2000403300A patent/JP3915876B2/ja not_active Expired - Fee Related
-
2001
- 2001-12-20 DE DE60111916T patent/DE60111916T2/de not_active Expired - Lifetime
- 2001-12-20 AT AT01130279T patent/ATE299606T1/de not_active IP Right Cessation
- 2001-12-20 ES ES01130279T patent/ES2243384T3/es not_active Expired - Lifetime
- 2001-12-20 US US10/026,336 patent/US7055155B2/en not_active Expired - Lifetime
- 2001-12-20 EP EP01130279A patent/EP1220093B1/en not_active Expired - Lifetime
- 2001-12-27 CN CNB011447877A patent/CN1149471C/zh not_active Expired - Fee Related
- 2001-12-27 KR KR1020010086328A patent/KR100600217B1/ko not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| KR100600217B1 (ko) | 2006-07-13 |
| CN1365046A (zh) | 2002-08-21 |
| US20020194073A1 (en) | 2002-12-19 |
| DE60111916D1 (de) | 2005-08-18 |
| HK1049048A1 (en) | 2003-04-25 |
| JP3915876B2 (ja) | 2007-05-16 |
| JP2002202892A (ja) | 2002-07-19 |
| DE60111916T2 (de) | 2006-04-20 |
| EP1220093A2 (en) | 2002-07-03 |
| EP1220093A3 (en) | 2003-04-16 |
| US7055155B2 (en) | 2006-05-30 |
| ATE299606T1 (de) | 2005-07-15 |
| KR20020055426A (ko) | 2002-07-08 |
| CN1149471C (zh) | 2004-05-12 |
| EP1220093B1 (en) | 2005-07-13 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3900536B2 (ja) | スマートicカードシステム | |
| US20020120924A1 (en) | System of reusable software parts for distributing event flows and methods of use | |
| Chen | Java card technology for smart cards: architecture and programmer's guide | |
| ES2280283T3 (es) | Objetos de control del lado del servidor para el procesamiento de elementos de la interfaz de usuario del lado del cliente. | |
| EP0942362B1 (en) | Remote procedure calling with marshaling and unmarshaling of arbitrary non-conformant pointer sizes | |
| US6405264B1 (en) | Marshaling and unmarshaling framework for supporting filters in a distributed object system | |
| TW484099B (en) | Method and apparatus for efficient invocation of Java methods from native code | |
| EP1010193A4 (en) | COMPUTER SYSTEM AND ASSOCIATED METHOD FOR THE OPTIMAL CONTROL OF STORAGE AND TRANSFER OF COMPUTER PROGRAMS OVER A COMPUTER NETWORK | |
| US6249803B1 (en) | Method and apparatus for executing code during method invocation | |
| ES2243384T3 (es) | Metodo para el tratamiento de cadenas de caracteres, sistema de tratamiento y programa objeto para ello. | |
| CN101004694A (zh) | 隔离的执行上下文之间数据转移的方法和装置 | |
| US6925632B2 (en) | System for configuration programming | |
| TW504640B (en) | System and method for performing a business process in a multi-enterprise, collaborating network | |
| CN117348875B (zh) | 统一调度跨框架微组件的方法、装置、微前端系统及介质 | |
| CA2255131A1 (en) | Method and apparatus for enforcing locking invariants in multi-threaded systems | |
| WO2012047134A1 (ru) | Система и способ распределенных вычислений | |
| CN112559137B (zh) | 一种h5容器配置方法及装置 | |
| KR100576967B1 (ko) | 자바 스마트 카드 | |
| JP4176889B2 (ja) | Icカード | |
| CN108536523A (zh) | 浏览器内ActiveX嵌套Flash正常交互的方法 | |
| TW480445B (en) | Method for downloading application programs on the compiler system platform of an electronic communication device | |
| JP7010084B2 (ja) | Ic決済で用いるトークンデバイス | |
| JP4313180B2 (ja) | 耐タンパ装置及び耐タンパネットワークシステム | |
| SIG et al. | RPC RUNTIME SUPPORT FOR I18N CHARACTERS—FUNCTIONAL SPECIFICATION | |
| Zukowski | Compatibility Issues |