PREGUNTAS CONTESTADAS - C/Visual C

 Hay un total de 745 Preguntas.<<  >> 

    Pregunta:  54010 - LA LIBRERIA BIOS.H UTILIZA APIS DE WINDOWS?
Autor:  Jesus Marcel Garcia
estoy programando una S-function en simulink de Matlab para poder acceder al puerto serial de la pc, sin embargo para hacerlo hasta ahora solo he encontrado la forma de hacerlo con los comandos bioscom de la libreria bios.h, pero simulink y el RTWT no soportan las llamadas a las API's de windows....Utiliza esta libreria alguna llamada a las API's de windows?.. conocen otra forma de acceder al puerto serial a bajo nivel....tal vez con los comandos inp...outp de dos.h
gracias de antemano por su ayuda.
  Respuesta:  Francisco Rogles
Como regla general, desde programas Windows no puedes acceder directamente al hardware, sino que debes utilizar los servicios que te proporcione Windows para ello. No sé mucho de MATLAB, pero MATLAB debe tener funciones que te permitan leer y escribir el puerto serie. Es cuestión de ponerse a bucear entre los manuales.

Saludos,

    Pregunta:  54146 - DELETE FROM TABLA_DINAMICA WHERE CURRENT OF CURSOR
Autor:  Ignacio Fatou Castro
Hola estoy trabajando en C y tengo una duda.
Actualmente estoy recorriendo un cursor que he creado de forma dinámica, y necesitaría borrar uno a uno los registros del cursos tal y como se van leyendo. El problema concretamente es que lo del CURRENT OF Cursor funciona cuando pongo el nombre de la tabla, pero cuando el nombre de la tabla tengo que asignarla en código no funciona.

Ejemplo del cursor:
-------------------------------------------
sprintf(lszQuery,"SELECT * FROM %s",lszTabla);
EXEC SQL
PREPARE CursorDinTab FROM :lszQuery;
EXEC SQL
DECLARE CursorDin CURSOR FOR CursorDinTab;
EXEC SQL
OPEN CursorDin;
----------------------------------------------

Declaro El Cursor de borrado

sprintf(lszDelete,"DELETE FROM %s WHERE CURRENT OF CursorDin",lszTabla);
EXEC SQL
PREPARE CursorDelete FROM :lszDelete;

Es aquí donde me fallaría y no estoy seguro de que es lo que estoy haciendo mal.

No se si hay otra manera de ir borrando uno a uno los datos de una tabla cuyo nombre desconozco.

Un saludo y gracias por vuestro tiempo.
  Respuesta:  LuFer Vega
Bueno, no se si todavia te sirva pero yo haria el borrado masivo de todos los registros y no de uno en uno, aqui te dejo un metodo que hace lo que tu quieres:

char *E_cpNombreTabla, Nombre de La Tabla que vas a eliminar los Registros.
char *E_cpCampoLLave, Campo Llave de la Tabla
char *M_cpMSJErr, Cadena donde se almacenara el Mensaje de Error en caso de que ocurriera alguno.

Valores de Retorno: 0 en caso de Exito. Cualquier otro en caso de Error.

#define Delete_Regs "DELETE FROM %s WHERE %s IN (SELECT %s FROM %s)"
int iBorrarDatos(char *E_cpNombreTabla, char *E_cpCampoLLave, char *M_cpMSJErr)
{
short sResult = 0;
EXEC SQL BEGIN DECLARE SECTION;
char cSQLStatement[1024];
EXEC SQL END DECLARE SECTION;

sprintf(cSQLStatement, Delete_Regs, E_cpNombreTabla, E_cpCampoLLave, E_cpCampoLLave, E_cpNombreTabla);
EXEC SQL PREPARE p_Delete_Regs FROM :cSQLStatement;
EXEC SQL EXECUTE p_Delete_Regs;
if(sqlca.sqlcode != 0){
sResult = sqlca.sqlcode;
sprintf(M_cpMSJErr, sqlca.sqlerrm.sqlerrmc);
}
return sResult;
}

Si no te sirve o tienes alguna duda comunicate por
skype lfernandovegar
correo [email protected]

    Pregunta:  54182 - MOVER EL CURSOR EN C++ 3.0
Autor:  Patricia Siguenza
hola con que función puedo mover el cursor a una posición (x,y)en la pantalla, o mejor si alguien me puede decir como me despliego en la pantalla
  Respuesta:  Armando Nava
http://www.lawebdelprogramador.com/temas/enlace.php?idp=177&id=13&texto=C/Visual%20C

    Pregunta:  54198 - COMO EJECUTAR UN FICHERO.BAT CON C++
Autor:  Luis Alberto Rouco Ramirez
Hola buenas tardes.

Estoy haciendo un programa para Instalar todas las actualizaciones de Windows XP sin necesidad de conectarse a internet para descargarlas.

Previamente me he descargado las actualizaciones y mediante un fichero.bat he dado las ordenes oportunas para su perfecta ejecucion. He de decir que dicho fichero se ejecuta perfectamente, pero a la hora de ponerlo en el lenguaje C++, me sale un error de MS-DOS y me da como opcion cerrar la ventana u omitir. Si Omito aun asi el programa no se ejecuta.

Os copio el codigo fuente para ver que es lo que estoy haciendo mal, y que alguno de vosotros por favorm e ayude para ver como poder ejecutarlo.

switch(o)
{
case 1:
system ("d:\\sp2.bat");
break;
/*case 2:
();break;*/
case 3:
{gotoxy(30,40);
printf("­­­­­­­­­­SALIR!!!!!!!!!!");
break;
default:
gotoxy(20,40),printf("Opcion Incorrecta. Seleccione otra opcion");}

}

con este codigo el fichero no se ejecuta. Por favor ayudenme.

un Saludo y espero Vuestras noticias.
  Respuesta:  Alberto Ramón Márquez
Saludos,
me parece buena idea eso de crear un autoejecutable para instalar las actualizaciones, he realizado un código que quizá te sea útil ya que abre el programa que elijas solamente especificando la ruta del archivo.

Código:

// Abrir aplicación
// @author Alberto Ramón Márquez

#include <windows.h>

int main(int argc, char *argv[]){

// Cambia "C:\Programa\Programa.exe" por "d:\sp2.bat" que es donde tienes // archivo .bat y solamente lanzando esta aplicación se abrirá el archivo .bat
ShellExecute(NULL, "open", "C:\Programa\Programa.exe", NULL, NULL, SW_SHOWNORMAL);

}

Espero haberte ayudado.
Un saludo

    Pregunta:  54353 - LIBRERÍA PARA VIDEOCONFERENCIA
Autor:  Rubén Casado Tejedor
Hola

Quiero añadir a una aplicación que ya tengo en Visual C++ desarrollada en Visual Studio 2005 la función de videoconferencia. ¿Existe alguna librería de código libre para hacer esto? ¿Alguna sugerencia de cómo hacerlo?

Gracias
  Respuesta:  Gibb Montes
Prueba con live555 (www.live555.com)

Tienen un conjunto de librerías (C++) para realizar streaming de audio/video, ke podrías utilizar para implementar una videoconferencia en tu red local.

Se usa para transmitir videos (no soporta todos los codecs) a través de internet usando el protocolo RTP/RTSP bajo UDP/TCP, pero también puedes, mediante tuberías, hacer ke transmita las imágenes de tu webCam.

-. Linked .-

    Pregunta:  55218 - COMO AGREGAR UNA .DLL AL .EXE EN BCBUILDER C++ 4
Autor:  Sergio Orozco
Hola: quisiera agregar una librería .DLL al proyecto e incluirla en el .exe que se genera para no tener que transportarla aparte. Gracias
  Respuesta:  Yosef Moreno
Una Pregunta, ¿Que deseas hacer?

1)-¿Cargar la Libreria en tu Codigo C++?
2)-¿Compilar tu código dentro de tu programa C++?

Si es la Uno tienes dos formas, una con el LoadLibrary ó con el Archivo.h de la DLL que quieres cargar, aqui te dejo un archivo header que puedes utilizar para hacerlo mas facil.


/**
* This is a header for simple multiplatform
* Dynamic library loads.
*
* @copyright 2008 Kirill Gavrilov
*/

#ifndef __loadLibrary_h_
#define __loadLibrary_h_

#if (defined(_WIN32) || defined(__WIN32__))
#include <windows.h>
#else // Linux
#include <dlfcn.h>
#define HMODULE void*
#endif

/**
* Just simple struct.
*/
struct StringLIST {
const int size;
const char* data[256];
};

/**
* Function call system function to return library handle.
* Returns NULL if not found.
* @param destination (const char* ) - library destination;
* @return HMODULE (means void* ) - handle of library.
*/
HMODULE DLibLoad(const char* destination) {
#if (defined(_WIN32) || defined(__WIN32__))
return LoadLibrary(destination);
#else
return dlopen(destination, RTLD_NOW);
#endif
}

/**
* Function call system function to return function address in library.
* Returns NULL if not found.
* @param libHandle (HMODULE = void* ) - library handle;
* @param fname (const char* ) - function name;
* @return void* - pointer to function in library.
*/
void* DLibGetfunction(HMODULE libHandle, const char* fname) {
#if (defined(_WIN32) || defined(__WIN32__))
return (HMODULE )GetProcAddress(libHandle, fname);
#else
return dlsym(libHandle, fname);
#endif
}

/**
* Function call system function to release library.
* (free memory).
* @param libHandle (HMODULE = void* ) - library handle;
*/
void DLibFree(HMODULE libHandle) {
#if (defined(_WIN32) || defined(__WIN32__))
FreeLibrary(libHandle);
#else
dlclose(libHandle);
#endif
}

#endif //__loadLibrary_h_

Si es la numero 2 definitivamente necesitaras el el archivo .H de la dll que estas utilizando.

    Pregunta:  55688 - SUMA DE ELEMENTOS DE UNA MATRIZ
Autor:  italo rueda
si yo tengo una matriz cuadrada o rectangular como puedo hacer para que me sume los elementos adyacente de un elemento de la matriz y que asigne dicho valor en la posicion del elemento y obtener una matriz del mismo tamaño
matriz original - matriz resultante
2 1 4 5 - 13 21 26 16
4 8 3 9 - 24 29 40 18
6 7 2 4 - 19 23 31 14
  Respuesta:  Alvaro Salvatierra S.
Hola:
Una forma es agregar filas y columnas con ceros en los bordes de la matriz original. Cada elemento de la matriz buscada se obtiene sumando los 8 elementos adyacentes en la matriz aumentada.

Este es el listado en C:
int main(int argc, char* argv[])

{
int a[6][6],b[5][5];
int i,j,n=5;

for(i=0;i<=n;i++)
for(j=0;j<=n;j++)
{
if(i==0 || j==0 || i==n || j==n)
a[i][j]= 0;
else
a[i][j]= 2*i+3*(n-j);
}

for(i=1;i for(j=1;j b[i][j]= a[i-1][j]+a[i+1][j]+a[i][j-1]+a[i][j+1]+a[i-1][j-1]+a[i-1][j+1]+a[i+1][j-1]
+a[i+1][j+1];

for(i=0;i<=n;i++)
printf(" %3d %3d %3d %3d %3d %3d
",a[i][0],a[i][1],a[i][2],a[i][3],
a[i][4],a[i][5]);

printf("

");

for(i=1;i printf(" %3d %3d %3d %3d
",a[i][1],a[i][2],a[i][3],a[i][4]);

printf("

");

for(i=1;i printf(" %3d %3d %3d %3d
",b[i][1],b[i][2],b[i][3],b[i][4]);

return 0;
}

Slds

    Pregunta:  55884 - [LINKER ERROR] UNRESOLVED EXTERNAL
Autor:  Gloria Pozuelo
Hola buenas, estoy haciendo una práctica con C++ builder 5 y al compilar me salen un par de errores "[Linker error] unresolved external 'y la funcion correspondiente' ". He comprobado el haber puesto los include, y todo parece estar bien, no sé qué puede ser, a ver si alguien me puede ayudar. Gracias de antemano. Saludos
  Respuesta:  Yosef Moreno
El Error es un error de enlace, deberas verificar tambien, que las funciones que estas utilizando no te pidan como entrada un puntero, o este bien escrita, cualquier cosa postea tu codigo y vemos.
  Respuesta:  Plexso Systems
Los "include" de headers solo agregan definiciones que son analizadas por el preprocesador, no por el linker.
Probablemente te esté faltando linkear contra alguna libreria en particular.

Si dices cual es el nombre de la función en la que te muestra en "unresolved" quiza podamos ayudarte a ubicar la libreria en la que se encuentra su código.

Saludos.

    Pregunta:  55950 - SEPARAR POR LETRAS UNA PALABRA
Autor:  Daniela Yonusg
Hola... Estoy trabajando con Visual Studio 2005 en lenguaje C++ y estoy haciendo un programa tipo Hi5. Al pedir el nick quisiera que solo fuesen caracteres alfanumericos pero necesito separar el string letra por letra para poder aplicar la función "isalnum". Por favor si me pudiesen indicar alguna función para separar palabras en letras. GRACIAS!
  Respuesta:  Victor Manuel Cardenas Fuentes
Realmente no es dificil puesto que una palabra se puede guardar en un arreglo de char o en un string si lo estas guardando en un arreglo de char seria asi por ejemplo char palabra[20]; luego si la palabra guardada es lola palabra[0]= L, palabra[1]=O, palabra[2]=L, palabra[3]=A, lo que te quiero decir es que guardes la palabra en un arreglo y cuando y podras tener cada letra.

    Pregunta:  56061 - GRAFICAR EN C
Autor:  ARTURO PEÑA
disculpen no se si me puedan ayudar, necesito saber sobre como graficar en c, pero no en 3D, solo necesito dibujos sencillos como lineas, circulos.
POR FAVOR, GRACIAS POR SU AYUDA
  Respuesta:  Yosef Moreno
Hola, mmm no has especificado si lo deseas en Win32 o en DOS, si es DOS y usas Borland C++ utiliza la librera Graphics.h
  Respuesta:  Francisco Rogles
No dices qué compilador utilizas, ni sobre qué sistema. Si es sobre DOS (auténtico, no ventadas DOS en Windows), tanto los compiladores de Microsoft como los de Borland tenían librerías gráficas que permitían hacer con facilidad gráficas sencillas, como las que dices que quieres. Si vas a trabajar en Windows, la cosa no es fácil. Te sugiero que utilices una librería que se llama DISLIN (http://www.mps.mpg.de/dislin/), es gratuita para usos no comerciales y hay versiones para varios lenguajes de programación (C/C++, FORTRAN, etc) y sistemas operativos.Busca la que se ajuste a tu compilador C y sistema operativo.

Espero que te sirva de ayuda.

Saludos,

|<  <<  65 66 67 68 69 70 71 72 73 74 75  >>  >|