Problema con DLL, hecha en Visual C++

11/11/2003 - 22:14 por Jorwin | Informe spam
Hola,
Primero que nada quiere que me disculpen por tantas
preguntas en tampoco tiempo lo que pasa es que soy nuevo
en este lenguaje, bueno al grano, tengo una dll
desarrollada en visual c++, dicha dll, cuando la ejecuto
desde visual fox pro o desde visual basic, me genera un
error de memoria, al momento de yo ejecutar dicha dll, no
me genera ningun error, el problema esta cuando esta dll
la ejecuto en varios procedimientos o muy seguido me
arroja un error que dice que no puede escribir en la
memoria, y se sale de la aplicacion, ahora bien alguein me
podria explicar porque ocurre esto, porque la verdad no
entiendo nada.
Sera que al momento de crear la dll me falta alguna opcion
la verdad no se.
bueno aqui les dejo algo de mi dll
char* prueba(CString valor)
{
CString x;
//realizo una serie de operaciones to//
return _strdup((char*)(LPCTSTR)x);
};
la mayoria de mis funciones estan de esa forma me
devuelven un valor char*

Bueno Espero me puedan ayudar y disculpen tanta molestia
de mi parte.

Jorwin Cumare.

Preguntas similare

Leer las respuestas

#6 Swin
14/11/2003 - 09:26 | Informe spam
Prueba a quitar el operador de referencia & en caso de char*. Ya le estás
pasando la referencia, una dirección de memoria en donde almacenará la
cadena. Importante haber reservado memoria en la aplicación antes para el
char* (como se haga en Visual Fox...). Con char* no es muy recomendable usar
la igualdad como hacías, usa la función strcpy (si usas una clase CString sí
podrías):

DLL:
void prueba(char* valor)
{
strcpy(valor, "Esto es una prueba");
};

APLI (escrito en C):
char* mivalor=(char*)malloc(sizeof(char)*TAMANO_MAX); //o simplemente char
mivalor[TAMANO_MAX];
...
prueba(mivalor);
printf("%s",mivalor); //Debería imprimir "Esto es una prueba"
..
free(mivalor); //solo si se reservó con malloc.
..


Ya contarás...

"Jorwin" escribió en el mensaje
news:015c01c3aa0d$a74f6180$
Hola javier, he notado que cuando el parametro que le paso
como valor por referencia es de tipo numerico bien sea int
o double, me trabaja sin nungun tipo de proble, el proble
surge cuando trabajo con datos de tipo string, alguna
suguerencia o porque puede pasar esto

///ejemplo con numerico
void prueba(int &valor)
{
valor = valor * 5
};///corre sin problema

///ejemplo con string o caracteres
void prueba(char* &valor)
{
valor = "Esto es una prueba"
};//esto no me arroja ningun resultado, en que estoy
fallando

Jorwin Cumare
Respuesta Responder a este mensaje
#7 Jorwin
17/11/2003 - 13:39 | Informe spam
Hola, quiero agradecerle por la ayuda brindada, debido a
que dicha ayuda he logrado solucionar mi problema. Muchas
Gracias y estamos a la orden, desde Valencia Venezuela.

Jorwin Cumare
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida