Hay un total de 745 Preguntas. | << >> |
Pregunta: | 29812 - PROBLEMA AL DELIMITAR UNA VENTANA GRAFICA (SETBIEWPORT) |
Autor: | Manuel Aguilar |
Hola, alguno de ustedes me puede decir como se reestablecen las vetanas graficas despues de utilizar el (setviewport) a las cordenadas; 1,1, ya que despues de utilizarlo no puedo quitar la ventana y restablecerla
|
Respuesta: | Eider Mauricio Aristizabal Erazo |
Hola a todos los amantes del padre de los lenguajes de programación...
Espero que este ejemplo te ayude con algo... cualquier duda enviamela a mi correo y con el código fuente. 1) Debes limpiar el puerto que tenias abiero con la funcion clearviewport 2)Debes hacer un nuevo setviewport que te abarque toda la panalla. 3)En el código que sigue, puse algunos valores que se salen del rango de la pantalla, esto para verificar la funcinalidad del setviewport //Saludo a los de Colombia y Cali #include <graphics.h> #include <stdlib.h> #include <stdio.h> #include <conio.h> void RestaurarPantalla(); void main(void) { int gdriver = DETECT, gmode, errorcode; int ht; initgraph(&gdriver, &gmode, "c:\\tc\\bgi"); settextstyle(SMALL_FONT,HORIZ_DIR,4);setcolor(15); outtextxy(10,10,"Estoy en la posicion 10, 10 con el puerto de la pantalla"); setcolor(1);line(10,12,getmaxx(),12);setcolor(15); outtextxy(10,30,"Pulse Enter para pasar al nuevo puerto"); getch(); setviewport(100,100,getmaxx()-100,getmaxy()-100,1); setcolor(1);line(-1000,12,1000,12);setcolor(15); outtextxy(10,10,"Posicion 10, 10 del puerto setviewport(100,100,getmaxx()-100,getmaxy()-100,1);"); outtextxy(10,30,"Pulse Enter para regresar al puerto por defecto de la pantalla"); getch(); RestaurarPantalla(); outtextxy(10,10, "Estoy en la 10,10 de la pantalla por defecto, es decir que ya lo restaur‚"); getch(); } void RestaurarPantalla(){ cleardevice();//opcional clearviewport();//limpio el puerto que se encuentra abierto actualmente setviewport(0,0,getmaxx(),getmaxy(),1);//Puerto por defecto cleardevice();//opcional } |
Pregunta: | 29814 - PROGRAMACION HIBRIDA ENTRE ENSAMBLADOR Y COM. DE PUERTOS |
Autor: | Alejandro Delgadillo Gómez |
Hola que tal me podrian proporcionar informacion de programacion hibrida entre C-ensamblador y la comunicacion de puertos, instruciones de C y asm gracias |
Respuesta: | Ne0 Ph03n1x |
Para usar el ensamblador en C se usa la palabra reservada asm, puede programarse linea a linea o bien un bloque completo, esto es:
/*codigo en c .... */ asm { /*un bloque en ensamblador*/ mov ax,dx } asm jnc aqui /*una sola línea en ensamblador*/ aqui: /*..... etc */ Para la comunicacion con los puertos se usa el "out" y el "in" en ensamblador: (si dato es byte saca un byte, si es word, saca un word, el primer byte en la direccion "puerto" y el restante en "puerto+1") out puerto,dato in puerto,dato en "c" son los siguientes: outportb(puerto,valor); /*saca un byte*/ valor=inportb(puerto); /*recibe un byte*/ y outport(puerto,valor); /*saca una palabra*/ valor=inport(puerto); /*recibe una palabra*/ Ok. Hope this is useful. Ne0. |
Pregunta: | 29903 - COMO ES LA INTERRUPCION AL RELOJ |
Autor: | Pedro Martinez |
Pues quisiera saber que hace y como le hacemos para realizar la interrupcion al reloj de la maquina desde un programa en c/c++ |
Respuesta: | ricardo ortega |
Saludos. No puedo ser más específico porque tu pregunta no aclara el compilador ni el ambiente.
La interrupción más conocida para el reloj es la 1CH (la h es de hexadecimal) generalmente sirve para procesar algo con cada tick del reloj, esto es, 18,2 veces por segundo. Es preferible hacerla en ensamblador, si la haces en C o C++ puedes tener problemas si sobrecargas de trabajo a esta función de interrupción (no solo que el reloj se retrasará sino que todo el sistema estará lento). Te puedo dar ejemplos en C y Asm, pero te aclaro que todo esto sirve solamente bajo DOS y ambientes de 16 bits. Para Windows se utiliza otro mecanismo que son los timers y los eventos,que no requieren interrupciones. Adjunto ejemplo en MASM |
Pregunta: | 30098 - CREAR INTERRUPCION |
Autor: | Monica Perez |
Hola, estoy programando en Visual C++ 6.0 y necesito crear una interrupcion, la cual tiene que ejecutar una funcion X, me podrian decir como hacerlo
o donde buscar informacion.. Gracias |
Respuesta: | Ricardo Jiménez |
Estimada compañera.
No entiendo bien lo que quieres decir con "interrupción". Supongo que te refieres a eventos. Si es así espero que este mensaje te resulte de ayuda. Para la gestión de eventos es necesario llamara a la función del API CreateEvent. Esta función retorna un manejador que te servirá al utilizar la función WaitForSingleObject. Esta función es la que se encarga de esperar los eventos y puedes configurarla como bloqueante hasta que se produce este. Para activar el evento tienes que llamar a la función SetEvent. Dentro de tu programa tendrás que hacer lo siguiente: - en tu programa crear un evento, y después de esto - Crear una hebra dedicada a esperar el mensaje. A esta hebra le pasarás como parámetro el manejador del evento - dentro de la hebra llamarás a la función WaitForSingleObject (mira los valores de retorno que no me acuerdo de memoria) hay un valor de retorno que te indicará que el evento se ha producido., este valor de retorno lo utilizarás para controlar la ejecución de tu "función X" - Allá donde necesites que se dispare tu función X sólo tendrás que llamar a SetEvent pasando el manejador del evento. No se si te he ayudado en algo, espero que si, Un saludo |
Pregunta: | 30159 - COMO ENVIO Y RECEBO DE DATOS A TRAVEZ DEL PUERTO PARALELO |
Autor: | baldomero galvan flores |
como puedo enviar o recibir datos atravez del puerto paralelo o que aplicaciones se pueden realizar mediante el enviando datos a algun mecanismo o dispositivo(que no sea la impresora), en una aplicacion win32. |
Respuesta: | eider mauricio aristizabal erazo |
buscate en la web una libreria que se llama
windows.h, la incluis en tu código fuente, y podes luego utilizar estos controles, debes saber bastante de programacion POO(Herencia, polimorfismo, sobrecarga). Espero que te sirva de algo |
Pregunta: | 30188 - COMO HACER UN DIR LISTBOX Y DRIVE LISTBOX EN C? |
Autor: | miguel angel lopez |
Como puedo hacer un Dir ListBox y un Drive ListBox al estilo de Visual Basic pero con C usando la API de windows?
Lo necesito para usarlo con un programa q tengo escrito en C normal y corriente y q quiero ponerle ventanas. GRACIAS. |
Respuesta: | ELHOMBREINVISIBLE NOMELOSSE |
facil solo tienes que enviar a la listbox un mensaje del tipo LB_DIR donde wparam contiene los atributos de los archivos a listar y lparam apunta a una cadena que contiene el path a volcar en la lista |
Pregunta: | 30466 - VISUAL C++ CON ILOG |
Autor: | Victor Jimenez |
A la hora de linkar me sale el siguiente error. Estoy programando con librerias de Ilog para Visual C++.
--------------------Configuration: CoreStep1 - Win32 Debug-------------------- Compiling... CoreStep1.cpp Linking... CoreStep1.obj : error LNK2001: unresolved external symbol "public: static class IlvSymbol * IlvGraphic::_nameSymbol" (?_nameSymbol@IlvGraphic@@2PAVIlvSymbol@@A) msvcrtd.lib(crtexe.obj) : error LNK2001: unresolved external symbol _main c:\ilogprueba\Debug\CoreStep1.exe : fatal error LNK1120: 2 unresolved externals Error executing link.exe. CoreStep1.exe - 3 error(s), 0 warning(s) |
Respuesta: | Jose Castellanos |
Bueno no solo tienes que agregar el include en un programa en Visual C++, tambien tienes que agregar la libreria( Archivo lib ) que contiene la implementacion de las cabeceras del archivo Header que incluyes.
Esto es si incluyes una cabecera include <tapi.h> tambien deberas agregar la libreria tapi32.lib estas se agregan en Visual C++ 6.0 en Proyect->Setting->pestaña LINK en donde dice Object Library Modules ahora cual libreria te falta no lo se, depende de las cabeceras que hayas agregado |
Pregunta: | 30492 - ATRIBUTOS EN MODO TEXTO PARA COUT |
Autor: | John Jairo Gamba Rincon |
he tratado de muchas maneras hacer que el texto que saco con cout me salga con color o fondo y no he prodido, las ordenes textcolor, textbackground y textattr solo me funcionan con cprintf o similares.
si hay que hacer algun procedimiento especial o utilizar alguna orden especial porfavor colaborenme, se que no es muy complicado |
Respuesta: | David Cañadas |
En particular no puedo responder dado que no conozco el método para hacer esto con cout. De todas formas, presupongo que estás trabajando sobre consola de DOS, en este caso debes saber que puedes controlar esto de otra forma.
Yo particularmente me programé en su momento una rutina de impresión a medida, algo como printf pero bastante más avanzado, capaz de reconocer saltos de línea, cambios de color, esperas a pulsación de una tecla, dibujo de ventanas, etc., todo controlable desde un string. El caso es que si deseas controlar el color del modo texto, y hablamos de un PC, puedes usar el segmento 0xB800, donde se almacena la pantalla de texto. Dicha pantalla ocupa 2000 bytes, de los cuales 1000 corresponden al texto y 1000 a los atributos. Van en grupos de dos (offset = 0 para carácter, offset = 1 para atributo, offset = 2 para carácter, offset = 3 para atributo, etc). El atributo se divide en dos partes: El byte 7 indica que ese carácter debe parpadear. Los bytes 6, 5 y 4 indican el color de fondo del carácter. Nótese que sólo pueden ser colores de brillo medio (del 0 al 7). El byte 3 indica si el color de primer plano del carácter será de brillo máximo o de brillo medio. Y los bytes 2, 1 y 0 indican el color de primer plano. Quizás puedas aprovechar algo de esto. Salu2. |
Pregunta: | 30586 - REGLA FALSA EN C++ |
Autor: | Ele Sanc |
Hola Gente
Sucede que un profesor nos solicito en un curso, que realizaramos el calculo de la Regla Falsa y la gráfica de la función(Cuestiones de Matemática) en C++, alguien que sepa la respuesta o a donde puedo hallar aunque sea una guía, le agradecería que me escribiera a mi correo. Gracias. |
Respuesta: | JUAN PICO |
EN ESTA MISMA PAGINA EN LA SECCION DE CODIGOS HAY UN CODIGO QUE HACE LO QUE ESTAS PIDIENDO |
Pregunta: | 30726 - SOBRE TIME.H Y DIFFTIME( ) |
Autor: | Jaime Rojas Arriaga |
No es C ni Visual C, pero es muy parecido; C++.
Tengo que registrar el tiempo que tarda mi computadora en ordenar un arreglo con el método InsertionSort, mi problema es que esto posiblemente lo hace en menos de un segundo y con el método difftime( ) solo puedo ver números cerrados (1 segundo, 2 segundos, etc.). He intentado guardarlo en un float e inclusive desplegarlo con 50 puntos decimales pero aun así me sigue mostrando por ejemplo: 1.0000000000000000000000000000000... Quisiera que alguien me aconsejara como le puedo hacer con esta función o que me recomendara otra función que determine el tiempo de ordenamiento y me lo despliegue con punto decimal. De antemano muchas gracias. Jaime. |
Respuesta: | Enic Cecilla Real |
timeGetTime te dara el tiempo del sistema con precision de milisegundos, lo tienes declarado en <mmsystem.h>, deberás enlazar con winmm.lib. |
Respuesta: | chuidiang www.geocities.com/chuidiang |
El problema es que las funciones de time trabajan en segundos y hagas lo que hagas, nunca obtendras algo inferior a 1 segundo.
Tienes que usar otra función. Suele haber una que te cuenta "ticks" del reloj interno y una constante en algún lado te dice, por ejemplo, que 100 ticks son un segundo. Con esto podrías afinar hasta la centésima de segundo. En unix/linux, la función si no recuerdo mal, se llama getitimer. Te devuelve el tiempo de proceso en "ticks". Basta tomarlo antes y después de las cuentas. Se bueno. |
|< << 47 48 49 50 51 52 53 54 55 56 57 >> >| |