Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus-es / 2009-11

Librerías de objetos Visual Studio.

6 messages · 4 people ·

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Iván Mesa

Saludos a todos.
Como bien comento cada vez que os hago una pregunta, me dedico a hacer programitas para PDA's. Antes usaba Visual Studio, pero desde que conozco Lazarus estoy migr�ndolo todo (al menos todo lo que veo que se puede migrar). El problema que me estoy encontrando, es que los equipos con los que trabajo disponen de SDK's para programar en VS, que son f�ciles de usar, pero que luego, en Lazarus, no se si es posible aprovechar. Generalmente son librer�as de objetos en formato DLL. Cuando uso librer�as de funciones, no tengo problemas, porque es llamar a la funci�n de la librer�a, pero en el caso de definici�n de objetos, pues la verdad, no lo tengo claro :'(. He le�do en alguna parte que, las librer�as de objetos s�lo se pueden usar con la herramienta para la que son dise�adas. �Qu� hay de verdad en eso?
�Hay alguna manera de poder aprovechar esas librer�as? �Tendr�a que contactar con el programador que las hizo para que las adaptara? Cualquier informaci�n me vendr�a bien.
Gracias.

------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20091120/a6ed8bb4/attachment.html>

Reply by email

Raistware
to Iván Mesa

Iv�n Mesa escribi�:

Show quoted text 21 lines
Saludos a todos. Como bien comento cada vez que os hago una pregunta, me dedico a hacer programitas para PDA's. Antes usaba Visual Studio, pero desde que conozco Lazarus estoy migr�ndolo todo (al menos todo lo que veo que se puede migrar). El problema que me estoy encontrando, es que los equipos con los que trabajo disponen de SDK's para programar en VS, que son f�ciles de usar, pero que luego, en Lazarus, no se si es posible aprovechar. Generalmente son librer�as de objetos en formato DLL. Cuando uso librer�as de funciones, no tengo problemas, porque es llamar a la funci�n de la librer�a, pero en el caso de definici�n de objetos, pues la verdad, no lo tengo claro :'(. He le�do en alguna parte que, las librer�as de objetos s�lo se pueden usar con la herramienta para la que son dise�adas. �Qu� hay de verdad en eso? �Hay alguna manera de poder aprovechar esas librer�as? �Tendr�a que contactar con el programador que las hizo para que las adaptara? Cualquier informaci�n me vendr�a bien. Gracias.

No me hagas mucho caso, pues no suelo usar librerias de objetos externas en DLL. Pero creo que lo que se deber�a de hacer es simplemente un wrapper para utilizar esa DLL, que defina los objetos utilizados en la librer�a. El problema es que por lo general solo el programador original sabe cual es la estructura del objeto ;-)

Suerte

Reply by email

Bruno Luciani
to Raistware

Aunque no es especifico de Lazarus , esto funciona en Harbour y en C

http://www.carozodequilmes.com.ar/Projects/QAC/_Index_QAC.htm

Saludos

Bruno

El 20 de noviembre de 2009 06:15, Raistware <raistware en gmail.com> escribi�:

Show quoted text 36 lines
Iv�n Mesa escribi�: Saludos a todos. > Como bien comento cada vez que os hago una pregunta, me dedico a hacer > programitas para PDA's. > Antes usaba Visual Studio, pero desde que conozco Lazarus estoy migr�ndolo > todo (al menos todo lo que veo que se puede migrar). > El problema que me estoy encontrando, es que los equipos con los que > trabajo disponen de SDK's para programar en VS, que son f�ciles de usar, > pero que luego, en Lazarus, no se si es posible aprovechar. > Generalmente son librer�as de objetos en formato DLL. Cuando uso librer�as > de funciones, no tengo problemas, porque es llamar a la funci�n de la > librer�a, pero en el caso de definici�n de objetos, pues la verdad, no lo > tengo claro :'(. > He le�do en alguna parte que, las librer�as de objetos s�lo se pueden usar > con la herramienta para la que son dise�adas. > �Qu� hay de verdad en eso? > �Hay alguna manera de poder aprovechar esas librer�as? > �Tendr�a que contactar con el programador que las hizo para que las > adaptara? > Cualquier informaci�n me vendr�a bien. > Gracias. > > No me hagas mucho caso, pues no suelo usar librerias de objetos externas en DLL. Pero creo que lo que se deber�a de hacer es simplemente un wrapper para utilizar esa DLL, que defina los objetos utilizados en la librer�a. El problema es que por lo general solo el programador original sabe cual es la estructura del objeto ;-) Suerte _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es

------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20091120/258daff7/attachment.html>

Reply by email

Bruno Luciani
to Raistware: Iv�n Mesa escribi�: No me hagas mucho caso, pues no suelo usar librerias de objetos…

Mas especificamente esta parte

http://www.carozodequilmes.com.ar/Projects/QAC/interface.htm

Bruno

El 20 de noviembre de 2009 06:15, Raistware <raistware en gmail.com> escribi�:

Show quoted text 36 lines
Iv�n Mesa escribi�: Saludos a todos. > Como bien comento cada vez que os hago una pregunta, me dedico a hacer > programitas para PDA's. > Antes usaba Visual Studio, pero desde que conozco Lazarus estoy migr�ndolo > todo (al menos todo lo que veo que se puede migrar). > El problema que me estoy encontrando, es que los equipos con los que > trabajo disponen de SDK's para programar en VS, que son f�ciles de usar, > pero que luego, en Lazarus, no se si es posible aprovechar. > Generalmente son librer�as de objetos en formato DLL. Cuando uso librer�as > de funciones, no tengo problemas, porque es llamar a la funci�n de la > librer�a, pero en el caso de definici�n de objetos, pues la verdad, no lo > tengo claro :'(. > He le�do en alguna parte que, las librer�as de objetos s�lo se pueden usar > con la herramienta para la que son dise�adas. > �Qu� hay de verdad en eso? > �Hay alguna manera de poder aprovechar esas librer�as? > �Tendr�a que contactar con el programador que las hizo para que las > adaptara? > Cualquier informaci�n me vendr�a bien. > Gracias. > > No me hagas mucho caso, pues no suelo usar librerias de objetos externas en DLL. Pero creo que lo que se deber�a de hacer es simplemente un wrapper para utilizar esa DLL, que defina los objetos utilizados en la librer�a. El problema es que por lo general solo el programador original sabe cual es la estructura del objeto ;-) Suerte _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es

------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20091120/60baf186/attachment.html>

Reply by email

JoshyFun
to Iván Mesa: Saludos a todos. Como bien comento cada vez que os hago una pregunta, me dedico a hacer…

Hello Iv�n,

Friday, November 20, 2009, 9:42:13 AM, you wrote:

IM> El problema que me estoy encontrando, es que los equipos con IM> los que trabajo disponen de SDK's para programar en VS, que son IM> f�ciles de usar, pero que luego, en Lazarus, no se si es posible IM> aprovechar.
[...]
IM> se pueden usar con la herramienta para la que son dise�adas. IM> �Qu� hay de verdad en eso?
IM> �Hay alguna manera de poder aprovechar esas librer�as? IM> �Tendr�a que contactar con el programador que las hizo para que las adaptara? IM> Cualquier informaci�n me vendr�a bien.

Las librer�as pueden ser en C, esto es con funciones planas las cuales puedes importar directamente en Lazarus y que s�lo requiere que conviertas las estructuras necesarias a pascal (h2pas puede ayudar mucho en eso).
Y las librer�as pueden ser C++ que s�lo pueden ser usadas por el mismo compilador que las gener� (con raras excepciones). En estos casos se suele hacer un "aplanamiento" mediante el mismo compilador de C++. Para realizar el aplanamiento primero necesitas saber si vas a tener que derivar clases del SDK, esto es si tus funciones van a usar las clases que ya hay en el SDK o vas a necesitas redefinir nuevas clases derivadas de las que vienen. Todas las derivaciones de esas clases tendr�s que hacerlas en el compilador de C++ y despu�s realizar el aplanamiento de todo el conjunto.

Para realizar el aplanamiento es relativamente sencillo, pero un trabajo manual y un poco tedioso la verdad, y creo que se explica mejor si hago un ejemplo en pseudo-codigo, para ello supongamos un clase en C++ que maneja ficheros, como el TFileStream de pascal (no recurdo bien la sintaxis de C++, ojo).

class CFileStream
{
public:

  HANDLE OpenFile(char *FileName);
  CloseFile(HANDLE Handle);

}

Para aplanar esta funci�n necesitamos crear varios datos, uno que controle la instancia, y funciones que creen y destruyan la clase:

void *CFileStream_Create()
{

  return new CFileStream;

}

void CFileStream_Destroy(void *CFileStream_Handle);
{
  delete (CFileStream)CFileStream_Handle;
}

Lo de arriba es m�s o menos igual para todas las clases.

HANDLE CFileStream_OpenFile(void *CFileStream_Handle, char *FileName) {

  return (CFileStream)CFileStream_Handle->OpenFile(FileName);

}

void CFileStream_CloseFile(void *CFileStream_Handle, HANDLE Handle) {

  (CFileStream)CFileStream_Handle->CloseFile(Handle);

}

Y ahora exportas esas funciones y ya puedes crear y usar las clases de C++ en tu programa en Lazarus.

Espero haberlo explicado m�s o menos :)

Best regards, JoshyFun

Reply by email