• Viernes 26 de Abril de 2024, 14:56

Autor Tema:  Compilar este proyecto como dll  (Leído 3384 veces)

jor1980

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Compilar este proyecto como dll
« en: Sábado 27 de Febrero de 2010, 19:37 »
0
Hola, tengo un problema necesito crear una dll con un proyecto creado por nvidia se llama nvtristrip y sirve para crear trianglestrips.

Para mi es importante crear esta dll para poder usarla con visual basic, pensé que si abría el proyecto con visual c++ y le daba a generar me valdría pero parece que no porque me aparecen múltiples errores.

Me podéis indicar como puedo compilar este proyecto en una dll teniendo en cuenta que no se c++?

El proyecto se puede descargar metiendo nvtristrip en google por si alguien es tan amable de echarle un vistazo a ver si me puede orientar


Muchas gracias

rfog

  • Miembro MUY activo
  • ***
  • Mensajes: 166
    • Ver Perfil
Re: Compilar este proyecto como dll
« Respuesta #1 en: Sábado 27 de Febrero de 2010, 19:48 »
0
Tienes que hacer un envoltorio compatible a esa biblioteca o bien cambiar todas las definiciones de las funciones públicas para que sean compatibles con la exportación de una DLL.

Create una DLL vacía con el asistente de Visual Studio y tendrás una idea de cómo es el formato.
Microsoft Visual C++ MVP - Mi blog sobre programación: http://geeks.ms/blogs/rfog

jor1980

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Compilar este proyecto como dll
« Respuesta #2 en: Sábado 27 de Febrero de 2010, 19:58 »
0
Cita de: "rfog"
Tienes que hacer un envoltorio compatible a esa biblioteca o bien cambiar todas las definiciones de las funciones públicas para que sean compatibles con la exportación de una DLL.

Create una DLL vacía con el asistente de Visual Studio y tendrás una idea de cómo es el formato.

Hola gracias por la respuesta, sabes de algún lugar donde encontrar un tutorial sobre esto para verlo de forma más clara?es muy importante para mi, de todas formas he probado a compilar el proyecto tal y como lo creó nvidia y me da errores, esto puede ser porque tenga que adaptar algo del proyecto al haber sido creado en una versión anterior de c++?

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Compilar este proyecto como dll
« Respuesta #3 en: Domingo 28 de Febrero de 2010, 01:17 »
0
Si llegas hasta ese punto no te olvides de exportar las funciones con la convencion de llamada stdcall, la unica que soporta VB.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

jor1980

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Compilar este proyecto como dll
« Respuesta #4 en: Domingo 28 de Febrero de 2010, 17:41 »
0
Creéis que es algo que pueda hacer sin conocimientos de c++ sólo con la orientación de un buen tutorial?

rfog

  • Miembro MUY activo
  • ***
  • Mensajes: 166
    • Ver Perfil
Re: Compilar este proyecto como dll
« Respuesta #5 en: Lunes 1 de Marzo de 2010, 14:17 »
0
Cita de: "jor1980"
Creéis que es algo que pueda hacer sin conocimientos de c++ sólo con la orientación de un buen tutorial?

No mucho, pero...

http://geeks.ms/blogs/rfog/archive/2009 ... tar-i.aspx
http://geeks.ms/blogs/rfog/archive/2010 ... ar-ii.aspx

Tengo prevista una tercera parte sobre cómo crear DLL en C y C++, pero todavía no la he hecho.

Eso mío, una simple búsqueda en google me da:
http://www.duamu.com/re/manual/1728/id/ ... con-c.html

No es muy bueno, pero de algo te servirá.
Microsoft Visual C++ MVP - Mi blog sobre programación: http://geeks.ms/blogs/rfog

jor1980

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Compilar este proyecto como dll
« Respuesta #6 en: Lunes 1 de Marzo de 2010, 21:13 »
0
Con el proyecto he visto que viene compilada en una librería .lib y en el readme pone los siguiente:

To use:
-#include "NvTriStrip.h"
-put nvtristrip.lib in your library path (the pragma in nvtristrip.h will automatically look for the library).




Podría esto servirme para crear la dll más fácilmente?

jor1980

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Compilar este proyecto como dll
« Respuesta #7 en: Jueves 4 de Marzo de 2010, 00:14 »
0
Hola he hecho un intento de crear la dll de la siguiente forma:

he creado un proyecto como librería de clases vacía y le incluí el Nvstrip.h en el directorio.

Mi proyecto se llama prueba y e el archivo prueba.cpp puse:
#include "NvTriStrip.h"

también puse el archivo.lib en el directorio

lo compilé y no me da errores me crea una dll, pero la dll no contiene nada

Se puede hacer esto que probé, o no tiene sentido?

rfog

  • Miembro MUY activo
  • ***
  • Mensajes: 166
    • Ver Perfil
Re: Compilar este proyecto como dll
« Respuesta #8 en: Lunes 29 de Marzo de 2010, 10:33 »
0
Bueno, pues ahora, siguiendo los pasos descritos en los enlaces que te he puesto más arriba, tienes que "exportar" todas y cada una de las funciones públicas que aparezcan en "NvTriStrip.h", o bien crearte tu un nuevo juego de funciones que llamen a las de ese fichero cabecera.

En este momento la DLL está vacía porque no hay nada exportado, y el optimizador del linker lo limpia todo.
Microsoft Visual C++ MVP - Mi blog sobre programación: http://geeks.ms/blogs/rfog