PREGUNTAS CONTESTADAS - C/Visual C

 Hay un total de 745 Preguntas.<<  >> 

    Pregunta:  19130 - ¿COMO DETECTAR LA PULSACIóN DE LAS FLECHAS?
Autor:  Alberto Elorrieta
Mi problema es que tengo creado un menu de opciones y quiero que cuando pulso a las flechas me pueda mover hacia arriba y abajo. Creo recordar que las flechas tenián un código para detectar su pulsación. Un saludo y gracias.
  Respuesta:  Mario Mora suarez
Mira este tipo de letras tienen un codigo ascii que comienza con 00
entonces lo que debes hacer es leer dos veces, con getch, si getch tiene le codigo 00 entonces tienes una de estas teclas, lo que sigue es que leas el resto para verificar que tecla es.

    Pregunta:  19137 - HELP ME!! COMO PUEDO CREAR UN DISCO DE ARRANQUE
Autor:  ALAIN RABEL JIMENEZ ROMAN
BUENO, YO ESTOY CREANDO UN SISTEMA OPERATIVO, PERO NO TUVE NI IDEA DE COMO CREAR UN DISCO DE ARRANQUE, YA QUE PROBE VARIAS INTERRUPCIONES QUE SE DEDICA A CONTROLAR EL DISCO DURO, PERO NO AL DISQUETTE Y EL DISCO DE ARRANQUE QUIERO QUE SEA EL DISQUETTE, YA SEA EN PASCAL, C O C++, O SI NO EN ENSAMBLADOR.
  Respuesta:  fer Canizalez
tal vez sea de ayuda descarga Kolibris es un sistema operativo hecho en ensamblador derivado de MenuOS otro S.O. baja una version de codigo vieja 1.x eso te orientara (aunque tus conocimientos dicen que sabes muy poco de programacion) mejor sigue aprendiendo y despues de varios años considera seguir
  Respuesta:  Ne0 Ph03n1x
Vaya, estas haciendo un OS pero no sabes si programar en ensamblador!!!!
Debe ser en ensamblador, por lo menos el primer sector, el bIOs carga el primer sector del floppy en la memoria (07c00) y lo ejecuta, si quieres que el floppy pueda ser leido o modificado desde DOS o winblows ;) entonces debes preservar la estructura del BPB.

    Pregunta:  19161 - TARJETA DE ADQUISICION DE DATOS
Autor:  Ruben Farias
Estoy realizando un Software de adquisicion de datos de variables electricas y quisiera saber si visual C++ 6.0, tiene alguna limitacion para procesar datos a gran velocidad, (yo sabia que VBasic los tiene),
Ademas si me pudieran dar algun lugar donde pueda encontrar informacion sobre comunicacion con la tarjeta de adquisicion y el pc,
De ante mano muchas Gracias.
Chao.
  Respuesta:  melpomene zeus
El problema de Visual Basic es que es interpretado (el programa generado es traducido internamente del Basic a código máquina), y para medidas en tiempo real de instrumentos, no es muy fiable, porque es lento. Supongo que se podría hacer en Visual C++, ya que es mucho más factible (que no fácil) controlar el rendimiento de la aplicación. Tal vez hubiese de confeccionarse en entorno DOS, para evitar la sobrecarga del procesador y en tiempo de la máquina causada por Windows, que podría llevar a medidas poco fiables, aunque no tiene que ser imprescindible. En cuanto a la comunicación, depende de que tipo de tarjeta sea y por donde se comunique con el ordenador, como el puerto serie, paralelo, USB... Un buen sitio de partida para encontrar información es www.tomshardware.com

    Pregunta:  19234 - EN BORLAND C++, COMO SEPARAR LA PARTE ENTERA Y DECIMAL
Autor:  Warner Valencia
Si, estoy trabajando en Borland C++, y necesito de una variable de tipo float, crear dos variables mas, una que contenga la parte decimal y otra que contenga la parte entera.

EJEMPLO:
Si yo tengo mi primera variable a = 234.897 esta me debe quedar:
en una variable c de tipo entero , c=234 y otra variable de tipo float un
d=0.897

Les agradecerian que me ayudaran con ese pequeño problemita, muchas gracias.
  Respuesta:  Eni xxxx
float a;
int c;
float d;

pides a
luego haces esto
c=int(a);
con eso tendras el c=234
luego
d=a-int(a);
con eso tendras el d=0.897

espero te ayude
  Respuesta:  Oscar Vazquez
Dependiendo de la implementación de la librería matemática del compilador, esto debería funcionar

float nValFloat = 234,987;
int nParteEntera = (int)nValFloat;
float nParteDecimal = nValFloat - nParteEntera;

    Pregunta:  19276 - CóMO HAGO PARA CONTROLAR LOS SWITCHES CON TECLAS DE FUNCION?
Autor:  Diego Martinez
Cómo hago para controlar los switches con el teclado extendido (teclas de funicion, F1-F12), pero que al compilarlo y correr solo se pueda ingresar a los casos por medio de las teclas de funcion y que sus iguales en el resto del teclado queden desabilitadas?
  Respuesta:  Phantom UnKnow
Con la libreria bios.h, y con la funcion bioskey(0); esta libreria y funcion le dan un codigo unico a cada tecla, asi que buscala en la ayuda de C y aprende como usarla; el codigo lo colocas en el case del switch.

    Pregunta:  19324 - CONEXION PUERTO PARALELO PLATAFORMA LINUX
Autor:  javier diaz diaz
como puedo conectar dos pc's por medio del puerto paralelo con plataforma linux
  Respuesta:  Oliver Atom
si la pregunta es como funciona el puerto paralelo en linux es muy sencillo, la funcion que debe implementar es una con nombre :

outb(value,base );

donde "value" es el valor a sacar por el puerto paralelo y "base" es el numero del puerto en hexadecimal, clarro esta que en linux debe agregar la libreria "asm/io" para el correcto funcionamiento y ademas debe abrir el puerto de la siguiente forma:

ioperm(base,1,1);

esta funcion pregunta al sistema operativo sis es posible encontrar el puerto que necesitamos en la direccion "base". el siguiente ejemplo puede explicarle:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <asm/io.h>

#define base 0x378 //direccion del puerto 378

main(int argc,char **argv)
{
if(ioperm(base,1,1))
{
printf("no se pudo encontrar el puerto en la direccion %x ",base);
}
outb(255,base); // sacar 255 por el puerto
}

de la misma manera es para leer la funcion es

inpb(value,base); // o el value va intercambiado con el base

y debe abrirlo de la misma manera con el ioperm()

para conectar fisicamente los equipos solo debe comprar un cable normal de centronics con ambos extremos machos.

    Pregunta:  19351 - ENLAZADO DE ARCHIVOS Y LIBRERIAS
Autor:  Ruben Villablanca
Hola
Soy un estudiante y con poca experiencia en Visual c++ 6.0, pero my inquetud se basa en que no entiendo algunos conceptos en la declaracion de librerias, archivos de biblioteca y cabecera....Cuando declaro las librerias que voy a utilizar las declaro en proyect - setting - link donde en la pestaña Object/library modules pongo las librerias que utiliza mi programa ejecuatble .. hasta ahi voy bien pero cuando tengo que poner los path de las carpetas que contiene las librerias en Tools - options - directory ...................nose cuantos archivos hay que declarar *.dll o *.ccp o *.h *.lib *.obj (tambien estos archivos.)....... y si hay que declarar estos archivos en que parte en - Source File - Librery file - Include file - Executable File .....(NOSE DONDE DEFINIR MIS ARCHIVOS EN CADA UNA DE ESTAS OPCIONES) ..Ademas mis librerias estan en dos carpetas diferentes y los archivos *. h tambien en las mismas dos carpetas que son distintas a donde se aloja mi archivo del codigo fuente *.cpp ........Espero cualquier Respuesta...Muchas Gracias de Ante mano.......Ojala puedan Ayudarme........
  Respuesta:  Alvaro Salvatierra
En Visual C++ en general no se declaran explicitamente los archivos .lib o.dll Si quieres enlazar estaticamente tu programa .exe con MFC debes usar la opcion /MT en Project-Settings-pestaña C C++- Project Options u opcion /MD para enlazado dinamico.
Para el primer caso Visual C usa archivo NAFXCW.LIB en directorio C:/.../VC98/LIB y para el segundo caso usa MFC42.DLL de clases MFC y MSVCRT.DLL (C RunTime) que se encuentran en C:/WINDOWS/SYSTEM
En el proyecto debes agregar los archivos .h y .cpp pertinentes usando Project- Add to Project - Files - y alli seleccionas los archivos necesarios.
Para utilizar una DLL propia debes crear un Proyecto .EXE con el Application Wizard de Visual C++ y luego agregar al espacio de trabajo el proyecto DLL mediante Project -Add to Project -New - pestaña Project - MFC DLL, marcando boton Add to Current Workspace. Luego con menu Projects - Dependencies hay que marcar que el Proyecto .EXE dependa del proyecto .DLL. Cuando el proyecto termine se instala la nueva DLL en C:/WINDOWS/SYSTEM

Saludos y espero haberte ayudado

    Pregunta:  19437 - SABER EL DIA DE LA SEMANA DE UNA FECHA USANDO C EN UNIX
Autor:  Guillermo Torres
Hola a todos!!
En un programa que hice en Turbo C++ utilize la siguiente instruccion:

mktime(&aux);

donde aux es una estructura de tipo tm, en aux le doy los vlores de dia, mes y año y con esta funcion me regresa que dia de la semana es (el tm_wday, de la estructura tm), ahora este mismo programa lo tengo que implementar en un servidor AIX, y consultando la ayuda de TC++ encontre que esta funcion no es soportada en UNIX.
Quisiera saber si alguno de ustedes me podria ayudar, el programa que hice es para calcular los dias habiles que han transcurrido desde una fecha dada al dia de hoy, pero la clave es esa funcion para no tomar en cuenta los sabados y domingos.
De antemano muchas gracias por su atencion.
  Respuesta:  José María Carmona
Guillermo:

La estructura tm si es soportada bajo UNIX. Yo acabo de hacer un programita para poder cargar en una variable la fecha de hoy con el fomato "YYYYMMDD". Acá utilizo el resgistro tm del cual hablás vos.

#include
#include
#include

void main()
{
struct tm * fec;
time_t a;
char fecha_char[9];

a=time(NULL);

fec=localtime(&a);

printf("%02d/%02d/%04d\n",fec->tm_mday,(fec->tm_mon +1),(fec->tm_year+1900));

sprintf(fecha_char,"%04d%02d%02d",(fec->tm_year+1900),(fec->tm_mon+1),fec->tm_
mday);

strcpy(fecha_char+8,"");

printf("%s\n",fecha_char);
}

La estructura de tm es la siguiente:
struct tm {
int tm_sec; /* seconds after the minute - [0, 61] */
/* for leap seconds */
int tm_min; /* minutes after the hour - [0, 59] */
int tm_hour; /* hour since midnight - [0, 23] */
int tm_mday; /* day of the month - [1, 31] */
int tm_mon; /* months since January - [0, 11] */
int tm_year; /* years since 1900 */
int tm_wday; /* days since Sunday - [0, 6] */
int tm_yday; /* days since January 1 - [0, 365] */
int tm_isdst; /* flag for alternate daylight */
/* savings time */
};

Espero que esto te sirva.
  Respuesta:  Elena
Hola Guillermo:

No se si esto te funcionara pero prueba con la funcion strftime (char* str, size_t max, const char* format, const struct tm* timeptr)

Esta funcion te devuelve en el char, la fecha en el formato en el que tu le has indicado. Segun tu ejemplo, creo que seria asi:

strftime(fecha,16,"%a",aux) y tendrias en fecha el dia abreviado de la semana

Si quieres el nombre entero del dia de la semana, usa "%A"

Saludos

    Pregunta:  19520 - MENSAJES EN VISUAL C++
Autor:  Antonio Moyano
Tengo ejecutandose en el PC una aplicacion constantemente y nunca salimos de ella, esta aplicacion esta hecha en Visual C++ y quiero detectar desde esta aplicacion una serie de mensajes que saca windows habisandome por ejemplo de que la batería del portatil esta baja. Necesito que cuando estoy en mi aplicacion trabajando y me salga esta pantalla avisandome del nivel de batería, mi aplicacion sea capaz de detectarla y poder apagarla si quiero . Haber si alguien me puede decir con que mensajedewindows puede detectar este caso o si he de heredar la ventana aplicacion de alguna forma concreta.Gracias de antemano, un saludo.
  Respuesta:  Juan Mellado
El mensaje que deberías procesar es WM_POWERBROADCAST.

Consulta en la ayuda del Microsoft Win32 SDK de cualquier compilador o en la web de Microsoft los parámetros que acompañan a este mensaje.

Espero haberte ayudado.
Saludos, Juan

    Pregunta:  19577 - TROCEAR UN BMP EN C++ BUILDER
Autor:  Antonio Barcia
Pues el título es casi autoexplicativo. He estado peleándome lo que he podido con la ayuda sobre TImage y TBitmap, pero no encuentro ningún método que me permita definar las coordenadas y dimensión de la porción a tomar dentro de un BMP, es decir, que me permita tomar tan sólo un trozo.
  Respuesta:  Jesús Antón Martín
Prueba con la propiedad Points.

|<  <<  35 36 37 38 39 40 41 42 43 44 45  >>  >|