Retroceder   Foros del Web > Temas generales de computación > Programación > C/C++

Respuesta
 
Herramientas Desplegado
Antiguo 29-abr-2008, 16:16   #1 (permalink)
leoalmirante ha deshabilitado el karma
 
Fecha de Ingreso: abril-2007
Mensajes: 18
Almacenar datos en variable global de DLL

buenas tardes a todos, tengo una duda, luego de leer el tutorial de http://www.recursosvisualbasic.com.ar/htm/tutoriales/interaccion-visual-basic-c++.htm(no me dejaron poner el enlace) interactuar C++ con Visual y de haber funcionado todo bien con los ejemplos que se dio empece a realizar una dll que necesito para poder imprimir desde mi sistema de facturacion desarrollado en PHP.

lo que quisiera saber es si puedo declarar una variable global en la dll de C++ y luego pasarle un valor mediante visual basic y luego esa variable usarla dentro de mi dll(desde las distintas funciones) con el dato almacenado(este dato no se tiene que perder para luego usarlo), si fuese posible quisiera que me ayuden con la forma de como declarar esa variable:

si las funciones se declaran de esta forma:
extern "C" DLLIMPORT void __stdcall conectaImpresora (long *A);

estoy pensando que la variable se declararia asi:
extern "C" DLLIMPORT STATIC char __stdcall rutaimpresora;//el dato que se almacenara es la ruta de donde se encuentre una impresora o el nombre de esta.

espero me ayuden, gracias.
leoalmirante está desconectado   Responder Citando
Antiguo 30-abr-2008, 02:19   #2 (permalink)
Eternal Idol está en el buen camino
 
Avatar de Eternal Idol
 
Fecha de Ingreso: mayo-2004
Ubicación: Europa (VdL)
Mensajes: 5.058
Re: Almacenar datos en variable global de DLL

No entiendo muy bien lo que queres hacer pero seguro que __stdcall no tenes que usarlo (es una convencion de llamada de funciones).
Eternal Idol está desconectado   Responder Citando
Antiguo 05-may-2008, 14:00   #3 (permalink)
leoalmirante ha deshabilitado el karma
 
Fecha de Ingreso: abril-2007
Mensajes: 18
Re: Almacenar datos en variable global de DLL

disculpa por no responder antes, lo que quiero es que en la dll que tengo en c++ haya una variable que me almacene una cadena de texto y que ese valor no se pierda, y por medio de visual basic asignarle el valor a esa variable, no se si se entendio

en C++

variable ruta

y desde visual basic

ruta = "c:/casa/etc/ej.txt"

y que este valor no se pierda para luego de las funciones de mi dll pueda usar esta ruta.

gracias por responder
leoalmirante está desconectado   Responder Citando
Antiguo 05-may-2008, 14:44   #4 (permalink)
Eternal Idol está en el buen camino
 
Avatar de Eternal Idol
 
Fecha de Ingreso: mayo-2004
Ubicación: Europa (VdL)
Mensajes: 5.058
Re: Almacenar datos en variable global de DLL

La forma mas simple que se me ocurre ahora mismo es usar una variable de tamaño fijo:

Código:
char rutaImpresora[MAX_PATH] = "";

void setRutaImpresora(char *ruta)
{
  strncpy(rutaImpresora, ruta, MAX_PATH - 1);
  rutaImpresora[MAX_PATH - 1] = 0;
}

char *getRuta()
{
  return rutaImpresora;
}
Lo podes hacer con memoria dinamica tambien ...
Eternal Idol está desconectado   Responder Citando
Respuesta
No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 02:09.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93