2012-03-07 9 views
10

Tendré que implementar un WM_COPYDATA IPC entre 2 aplicaciones. Tengo muestras en Internet, pero todas ellas solo envían cadenas de menos de 255 caracteres.WM_COPYDATA SendMessage - ¿Puede enviar grandes cadenas de caracteres?

Deseo enviar una cadena grande (más de 1k) a otro proceso usando WM_COPYDATA. ¿Es posible? ¿Cuáles son las limitaciones? ¿Debo enviar una transmisión en lugar de una cadena o registro?

Ambas aplicaciones han sido desarrolladas por mí usando Delphi 2010.

+0

¿Por qué obtuve -1? –

+3

No lo sé. Te di +1 para equilibrarlo. A veces hay votantes aleatorios en SO, especialmente aquí en [tag: delphi]. Lo mismo sucedió con [una pregunta mía] hace un par de días (http://stackoverflow.com/questions/9572887/3d-library-recommendations-for-interactive-spatial-data-visualisation). –

Respuesta

8

No hay limitaciones. Puede enviar datos tan grandes como desee, sujeto a las restricciones de memoria disponibles, usando WM_COPYDATA.

+0

¿Básicamente 2 conciertos más o menos en win32? :-) –

+0

@Warren Es difícil encontrar ese espacio de direcciones contiguo en un proceso de 32 bits. –

+2

Si realmente necesita enviar 2GB de datos, es mejor que solo use un archivo temporal y pase el nombre del archivo, o use las interfaces COM 'IDataObject' y 'IStream' en su lugar. –

Cuestiones relacionadas