Hay un total de 745 Preguntas. | << >> |
Pregunta: | 247 - CREAR UNA DLL EN VC++ PARA VB 4.0 |
Autor: | Gabriel |
Necesito ayuda Urgente: Estoy creando una DLL en Visual C++ 1.5 para ser utilizada desde Visual Basic 4.0(Estoy trabajando en 16 bits con Windows 95). Una de las funciones que he creado recibe una cadena y devuelve otra cadena, la declaracion del parámetro es la siguiente:NPSTR CALLBACK __export AVISO ( NPSTR cadena)Tambien he probada con LPSTR y char * |
Respuesta: | Isaac Valentin |
Hola Gabriel:
Tengo exáctamente el mismo problema que tú. Yo he conseguido resolverlo de una forma 'poco elegante' Mi función en C++ es del estilo int Venta (char* entrada, char* salida); y en VisualBasic declaro la función Venta así: Private Declare Function Venta Lib "SmpaItf.dll" (ByVal importe As String, ByVal buffer As String) As Integer en VB creo un string, que es donde en realidad voy a recibir los datos del VC dim buffer as string dim status as integer buffer = Space(1024) status = Venta("12.00", buffer) msgbox buffer La función en C lo que hace es "rellenar" el parámetro char* salida y, en visual basic, después de la llamada a la función Venta, la variable buffer contiene lo que la función en C ha puesto. No me gusta, aunque funciona, creo que es una forma 'guarra' de hacerlo y además nos obliga a definir el tamaño de la respuesta desde el Visual Basic ..... pero es la única forma en que he podido implementarlo ... si al final tu has conseguido una forma mejor ... por favor cuentamela. Thanks |
Respuesta: | Miguel Sepulveda |
Prueba a usar en VB ByRef y en C++ usa char *. Espero que te sirva para solucionar tu problema. Un saludo. |
Pregunta: | 263 - CÓMO GENERO UNA DLL EN VISUAL C++ PARA VBASIC 5.0 |
Autor: | Raúl |
Quiero hacer una función en Visual C++ y compilarla como DLL para poder ejecutarla desde Visual Basic 3.0 o 5.0. Necesitaría: ¿Saber cómo declararla, definirla y demás, tanto en Visual C++ como en Visual Basic? De ser posible, si me puedes escribir unas líneas de código de ejemplo estaré muy agradecido. |
Respuesta: | Juan José Rodríguez |
Busca información sobre BSTR, USES_CONVERSION, W2T, A2T, T2BSTR en MSDN. Y con eso creo que tendrías solucionado el manejo de strings de Visual Basic a Visual C++ y viceversa. |
Respuesta: | Miguel Sepulveda |
En C++ tienes que abrir un proyecto nuevo como Win32 Dynamic-Link Library con el nombre por ejemplo "PuebasDll". La cabecera de la función sera de la siguiente forma: tipo-retorno WINAPI nombre-funcion(parámetros) por ejemplo: short WINAPI sumar(short a, short b)En VB tienes que introducir una linea con lo siguiente: |
Respuesta: | Juan |
Consulta la direccion http://web.jet.es/pmaicas/articulo/gifdll.html Apenas la encontre pero yo creo que si biene mas o menos explicada |
Pregunta: | 275 - ARCHIVOS EN C |
Autor: | Andrés |
Les escribo porque tengo un problema. Quiero hacer una función para calcular el tamaño de un archivo. Yo escribí una que funciona muy bien con los archivos de texto pero no con un ejecutable. Quisiera saber que está mal. Esta es la función: long FileSize(FILE *file)
|
Respuesta: | Julio Alejandro |
Hola, lamento no contenstarte tu pregunta, pero si de algo te sirve, he provado tu función en Turbo C++ 3.0 y funciona perfectamente bien, incluso con archivos ejecutables, te da exactamente el mismo valor en bytes que el que te indica un DIR del DOS, solo te puedo indicar que abri el archivo con FOPEN y de solo lectura, además imprimí el valor de regreso con un sencillo PRINTF(....%ld ....). Checá bien :-) Saludos. |
Respuesta: | Jose |
Este pequeño programa te dice cual es la longitud en bytes de un archivo, en este caso el nombre del archivo es netlog.txt, situado en el directorio c:\#include |
Respuesta: | Daniel Osuna |
El problema no esta en esa función, sino en la forma en que abrís el stream: si lo abres en modo "rt", o algo parecido con t (texto): "wt", "r+t", "a+t", etc, el programa trasladará los CTRL-Z como fines de archivo y por lo tanto en el primer cracter 26 que encuentres dentro de un archivo binario, interpretará que llego al final del mismo. arch=fopen( nomarch, "rb" ); |
Pregunta: | 280 - USO DEL CONTROL MSCOMM32.OCX |
Autor: | Javier |
Necesito saber como programar el puerto serial mediante Visual C++ 5.0, utilizando el control MSCOMM32.OCX de Microsoft. Tengo entendido que tiene muchas funciones y ya manejo algunas de ellas, el caso es que las dos principales envio y recepción, funcionan con un tipo de datos varian y en C++ nunca he manejado tal cosa, no se deja convertir a otro tipo. Mejor dicho no se nada acerca de el. Espero la respuesta y colaboración. |
Respuesta: | Carlos Israel Alemán |
Para el dato variant puedes utilizar una estructura que contenga un int y una union, el int es para codificar el tipo de dato que contenga la estructura, y la union consta de todos los tipos de datos disponibles. De sta forma puedes trabajar con tipos de datos variant. |
Respuesta: | Alonso Salazar |
Por la longitud de la respuesta de Alonso Salazar, la hemos colocado en el archivo resp280.txt. |
Pregunta: | 300 - FUNCIÓN KEEP DE BORLAND C++ |
Autor: | Luis |
Agradeceria cualquier tipo de información sobre la función KEEP para dejar un programa residente. GRACIAS |
Respuesta: | Herold Leiva M. |
Por la largada de la respuesta, la hemos colocado en el archivo resp300.txt |
Pregunta: | 316 - TURBO C A TURBO PASCAL |
Autor: | Armando |
Deseo conocer alguna manera de pasar un programa hecho en Turbo C a el codigo que generaria en Turbo Pascal, asi de paso pueden darme una solucion al hecho de que los ejecutables de Pascal sean mas pequeños que los de un programa hecho en C. |
Respuesta: | sinapse |
Yo me baje un programa de internet que hacia eso, si te sirve, pon en google "ctopas.zip", que era el nombre. Pero no era gran cosa.
Si quisieras hacerte tu uno bueno, tendrias que hacerte un compilador, y eso tiene bastante miga (deberias hacer una tabla de simbolos,un analizador morfologico, uno sintactico, uno semantico y un generador de codigo, bastante chungo). En cuanto a por que son menores los ejecutables en Pascal es muy facil: en C los objetos se linkan con las librerias (stdio.h,stdlib.h,etc) ENTERAS, aunque solo uses unas pocas funciones de cada una. En Pascal los objetos solo se enlazan con las funciones necesarias de cada libreria. Cualquier cosa, me escribes |
Respuesta: | JF VA |
no existe en si un programa que te pase totalmente de un lemguaje a otro pero si se puede implementar uno que te cambie el nombre de siertas sentencias por ejemplo sustituir { por begin etc .
no tengo por el momento la bibliografia completa pero en el libro de: Programacion Avanzada en C viene una rutina que soluciona tu problema. nose mucho de C y tengo problemas con estructura de datos pero en lo que te pueda ayudar lo hare con gusto.. |
Respuesta: | Jorge Vicente |
No se como puedes convertir el código del Turbo C al del Turbo Pascal, estas planteando una cuestión harto complicada. Lo que si te puedo decir es la razón (al menos la que a mí siempre me explicaron, y es lógica por otra parte ) por la cual el código del Turbo C es mayor que el generado por el Turbo Pascal. El turbo C linka (o enlaza) una librería completa, independientemente de si utilizas todas o solo parte de las funciones que implementa. El Turbo Pascal, en cambio solo usa ciertas funciones enlazadas en el código. La función printf en C enlaza toda la librería estándar de entrada salida (encima dependiendo del modelo de memoria en la que estes compilando será mayor o menor), y el turbo pascal solamente la función write (o writeln) que es pequeñita. La única manera que veo de reducir "radicalmente" el tamaño generado del código es crearte tú propia función en ensamblador y si fuese solamente imprimir cosas en pantalla pues mediante una interrupción del DOS y listo, si no es una función sencilla el asunto es más complicado. |
Pregunta: | 322 - PROBLEMAS CON LA MEMORIA EN C++ |
Autor: | Juan |
Soy Argentino y medio bruto, y tengo un problema. Tengo que entregar un programa en la facultad a modo de trabajo practico y mi problema es que no puedo crear un vector o cualquier otra estructura de datos en forma dinamica con la cual pueda utilizar la memoria que necesito. El Sistema Operativo que uso es Windows 95, el compilador que uso es Turbo C++ 3.0 de Borland. El vector del que hablo debe guardar al menos 30000 estructuras que contengan un entero largo y una cadena de caracteres de 4 posiciones (char[4]). Agradeceria a todo el que me pueda responder esta pregunta... |
Respuesta: | Andres Manggini |
Algo asi deberia funcionar:struct A |
Respuesta: | Daniel Osuna |
Aqui va una solución que emplea el API de windows:struct A |
Pregunta: | 378 - PROBLEMA AL RESERVAR MEMORIA |
Autor: | Eider J. Falla A. |
Hola, me esperanzo en ustedes para solucionar un gran dilema, el problema es de C/C++, y se basa principalmente en un proyecto de programación sobre las matriculas para estudiantes de una institución, el sistema maneja basicamente 3 conceptos, manejo de archivos, manejo de listas dinamicas doblemente enlazadas, y el manejo del modo grafico del C/C++ y su biblioteca en la lista manejamos C++, para ser usada como un objeto, y reservamos memoria con el argumento new, al parecer este argumento, al ser expuesto en un ciclo, (al cargar la información de los archivos), y junto con el modo grafico, me pisa, por asi decirlo, o me separa y usa memoria que es exclusiva del sistema operativo (DOS 6.22), y me crea un desborde de pila en la memoria principal, lo cual no me explico al tener tanta memoria disponible, y esto ocurre con unas pocas veces de uso... quisiera saber si alguna forma de direccionar el operador new o de manejarlo de tal forma que pueda ubicarme en memoria que no esta siendo usada, o tal vez deba quitar el manejo de listas... no se que pasa en realidad aqui, estamos utilizando el operador delete para liberar la memoria usada e incluso creamos una función llamada destruir() que me libera toda la lista, pero esto fue peor aun, no se si lo hicimos mal... ya que no somos muy buenos con el C++. ya que sus ayudas son horribles. apreciaria cualquier ayuda... cualquier comentario... cualquier posible causa del error.. o cualquier posible solución. |
Respuesta: | Chuy Saenz |
Primeramente un saludo,
no se pero se me ocurre utilizar un puntero tipo far que sirve para utlizar la memoria fuera de los 640kb co0nvancionales, con esto separa la memoria. |
Respuesta: | José Luis Torres Pantoja |
Ante todo un saludo. No se si ya resolverías tu problema, de no ser así ahi te va mi experiencia: Tengo bastante tiempo manejando el C/C++ para DOS y nunca he tenido esos problemas, es más yo pienso que puede estar sucediendo alguno de estos casos: 1.- dejas algun archivo abierto y nunca lo cierras 2.- abres más de una vez un archivo sin cerrarlo. 3.- cierras un archivo que no ha sido habierto. 4.- cierras más de una vez un archivo. incluso hasta puede ser tu rutina del ratón(si la utilizas): 1.- llamas a la rutina para mostrar el ratón dos veces 2.- llamas a la rutina de ocultar el ratón sin que éste esté visible. Tal vez parezcan raras estas causas pero créeme que suele suceder que esto te cree problemas. Si tu problema continúa no dudes en enviarme un mail Hasta luego. |
Respuesta: | Endos |
Por el gran tamaño de la respuesta, la hemos colocado en el archivo resp378.txt |
Pregunta: | 395 - GRAFICOS EN C++ 3.0 |
Autor: | Eloy M. Silva Vásquez |
como poder hacer una rutina de ingreso de numeros o caracteres en modo grafico, con la finalida de que si se ingresa un número, se grafique dicho dato. Ejemplo graficar la función seno(nuemero), etc |
Respuesta: | DAVID PIVARAL |
LA PREGUNTA NO ES MUY CLARA PERO SI LO QUE DESEAS ES INGRESAR UN DATO NUMERICO EN MODO GRAFICO, DEBERAS INGRESARLO COMO UNA CADENA Y LUEGO CONVERTIR ESTA AL VALOR NUMERICO USANDO LAS FUNCIONES 'ATOI', 'ATOL',ETC.
PERO SI LO QUE DESEAS ES GRAFICAR UNA FUNCION EL EL LIBRO 'BORLAND C' DE PAPPAS, PODRAS ENCONTRAR UNA RESPUESTA DETALLADA. |
Respuesta: | victor hugo perdomo |
creo que tengo exactamente lo que necesitas, diseñe un programa que me muestra la funcion seno utilizando la "graphics.h" y haciendo unas modificaciiones muy simples podemos graficar cualquier otra funcion.Si deseas el codigo fuente mandame un correo y con gusto te lo enviare. |
Respuesta: | Eider |
si lo que quieres es leer un numero en modo grafico la respuesta en el archivo resp395.txt si lo que deseas es graficar un funcion matematica, esto es bastante sencillo si sabes cuales son las medidas de la pantalla en que trabajas, si por ejemplo estas usando el modo normal, es decir el driver VGA.BGI, entonces la pantalla sera de 640x480 pixeles, iniciando en 0, para todas las dos dimensiones, y si sabes esto, y sabes que puedes colocar un pixel con la funcion "putpixel(parametros)", (puedes buscarla en la ayuda del compilado en la libreria SUERTE...
|
Respuesta: | CLAUDIO CASTILLO |
Te cuento mi experiencia, lo que hice fue grabar mis fuentes de vb3 en modo texto, si te das cuenta los fuentes frm de vb5, son muy similares, lo unico que hacen referencia a distintos controles. Para empezar debes modificar los frm de vb3, y donde hagan referencia a la threed.vbx debes cambiarla por threed.ocx, y asi para para todo. Nota: Debes considerar ademas que para algunos controles se crearon nuevas propiedades, por lo que yo hice un algoritmo que me incorporara las nuevas propiedades de acuerdo al objeto a actualizar, de no hacerlo se abriran los objetos pero no del tamaño ni posicion original. Suerte. |
Pregunta: | 404 - BIOSCOM |
Autor: | Juan Carlos |
Estoy trabajando con BORLANDC (Version 3.0), para adquirir datos por puerto serial, Utilizo BIOSCOM. Yo me base en el ejemplo que trae el programa, pero el dato que el me arroja en la pantalla es un caracter (PUTCH), yo necesito convertir este dato a un numero flotante (he tratado con ATOF :conversion de string a flotante), pero he tenido problemas con el string y el apuntador. Si alguien me puede decir como lo convierto le agradeceria... Tambien quisiera saber donde encuentro información sobre como adquirir datos en linea utilizando BORLAND C++ (No es un solo dato, sino unos datos que forman un grafico por ejemplo una señal de voltaje A.C) |
Respuesta: | David |
char a; // Aqui esta el caracter recibidoSi utilizas atof() es para lo siguiente |
|< << 1 2 3 4 5 6 7 8 9 10 11 >> >| |