PREGUNTAS CONTESTADAS - C/Visual C

 Hay un total de 745 Preguntas.<<  >> 

    Pregunta:  37903 - CODIGO DE BARRAS
Autor:  EUGENIO CRUZ TEJADO
ESTOY BUSCANDO UN CONTROL PARA EL CODIGO DE BARRAS EN BORLAND BUILDER C++ 1.0. AGRADECERIA VUESTRA AYUDA. TAMBIEN AGRADECERIA QUE ME EXPLICARAN COMO IMPLEMENTARLO Y/O SU USO EN BUILDER. MUCHAS GRACIAS.
  Respuesta:  Lei-Rek
Que tal, existe un componente en la pagina de http://www.torry.net/ esta hecho en Delphi, pero se instala perfectamente en C ++ Builder, (si no sabes como instalarlo escribeme) para generar el codigo solo le das el numero alfanumerico y listo, esta muy simple, puedes tomar alguna clave de una base de datos y el componente te genera el codigo de barras, tiene muchos estandares, para reconocerlo es mas facil aun, solo te colocas en el Edit de interes y pasas el codigo por el lector, el cual dara un enter automaticamente y listo, como ves para leer el codigo realmente no ocupas nada, los lectores pueden programarse para que al final de la lectura agregen un enter, un escape u otra tecla, eso esta en el instructivo, espero te sirva, Suerte !!

    Pregunta:  37922 - USO DE DLL DE UN C++
Autor:  Jon Garcia
Querría usar una dll en un porgrama de C++, pero me da el siguiente error:

En el fichero .cpp tengo la suguiente función que llama a funciones de la dll:

void CloseWaveOut(void){
rc = waveOutReset(hWaveOut);
rc = waveOutUnprepareHeader(hWaveOut, outHdr, sizeof(outHdr));
rc = waveOutClose(hWaveOut);
}

y en el .h he declarado las funciones de la dll que necesito:

extern long waveOutUnPrepareHeader (long,WAVEHDR,long);
extern long waveOutReset (long);
extern long waveOutClose (long);

y me da el siguiente error:

proy.obj : error LNK2001: unresolved external symbol \"long __cdecl waveOutClose(long)\" (?waveOutClose@@YAJJ@Z)
proy.obj : error LNK2001: unresolved external symbol \"long __cdecl waveOutUnprepareHeader(long,struct WAVEHDR,long)\" (?waveOutUnprepareHeader@@YAJJUWAVEHDR@@J@Z)
proy.obj : error LNK2001: unresolved external symbol \"long __cdecl waveOutReset(long)\" (?waveOutReset@@YAJJ@Z)

Gracias de antemano
  Respuesta:  Daniel Azkona Coya
Para poder hacer la declaración de las funciones tal como tu lo haces necesitas el fichero .LIB de la DLL. Ya que estas intentando una cargar estática.
La otra posibilidad es hacer carga dinámica de la DLL:
Tienes que usar el GetModuleHandle() para obtener un handle a la DLL y luego coger el puntero a cada funcion

    Pregunta:  38017 - COMO OBTENER LA DIRECCION MAC DE MI TARJETA DE RED
Autor:  sergio spampinato
hola a todos, quisiera saber de que forma puedo obtener la direccion MAC de mi tarjeta de red, les agradeceria si tienen algun codigo en c para sacarla y si no cualquier lenguaje me viene bien o mejor si tienen alguna forma mas estandar asi la puedo sacar con cualquier lenguaje de programacion, es que estoy haciendo un programa en c y necesito alguna forma de obtener esa direccion, saludos y gracias totales
  Respuesta:  Germán Chávez Reátegui
#include "nb30.h"

// enlazar con netapi32.lib

typedef struct _ASTAT_
{
ADAPTER_STATUS adapt;
NAME_BUFFER NameBuff[30];
} ASTAT, * PASTAT;

CString GetMacAddress()
{
ASTAT ast;

NCB ncb;
UCHAR uRetCode;

memset(&ncb, 0, sizeof(ncb));
ncb.ncb_command = NCBRESET;
ncb.ncb_lana_num = 0;

uRetCode = Netbios(&ncb);
if (uRetCode != 0) {
return "";
}

memset(&ncb, 0, sizeof(ncb));
ncb.ncb_command = NCBASTAT;
ncb.ncb_lana_num = 0;

CString strHost;
TCHAR szComputer[128];
DWORD dwSize = sizeof(szComputer);
if (!GetComputerName(szComputer, &dwSize)) {
return "";
}
strHost = szComputer;
strHost.MakeUpper();

FillMemory(ncb.ncb_callname, NCBNAMSZ - 1, 0x20);

strcpy((char *)ncb.ncb_callname, (LPCTSTR)strHost);

ncb.ncb_callname[strHost.GetLength()] = 0x20;
ncb.ncb_callname[NCBNAMSZ] = 0x0;

ncb.ncb_buffer = (unsigned char *) *
ncb.ncb_length = sizeof(ast);

uRetCode = Netbios(&ncb);
if (uRetCode != 0) {
return "";
}

CString strMacAddress;

strMacAddress.Format(_T("%02X%02X%02X%02X%02X%02X"),
ast.adapt.adapter_address[0],
ast.adapt.adapter_address[1],
ast.adapt.adapter_address[2],
ast.adapt.adapter_address[3],
ast.adapt.adapter_address[4],
ast.adapt.adapter_address[5]
);

return strMacAddress;
}

    Pregunta:  38168 - CONOCER MI IP EN C
Autor:  Oscar Ripolles
Simplemente queria saber que comando es necesario para conocer mi ip en un programa en c. He estado buscando pero averiguo todo menos mi ip. Gracias
  Respuesta:  Ismael Cortes V.
Lo que pasa es que (hasta donde yo se) no hay una forma 100% directa de obtener tu direccion IP.
Pero puedes usar las funciones gethostname() y gethostbyname() de WinSock.

Con gethostname() obtienes el nombre de tu m&aacunte;quina. Usando este nombre como parametro en gethostbyname() obtienes una estructura HOSTENT que incluye un puntero a una estructura in_addr si usas internet o su equivalente según la red que usas.

El código quedaría algo así:

void GetHostAddress(struct in_addr *host) {
HOSTENT* phe;
char hostname[255];

gethostname(hostname,255);
phe = gethostbyname(hostname);

memcpy( host, (phe->h_addr), sizeof(in_addr));
}

Espero que te ayude en algo.
--TheOFFset

    Pregunta:  38249 - GUARDAR UN GRÁFICO EN VISUAL C++ 6.0
Autor:  Marisa J.B.
Hula a tod@s, en mi programa tengo que representar una serie de puntos con MoveTo y LineTo. Uso una clase, por ejemplo, CDibujo, y lo que quiero es poder guardar ese dibujo en un fichero para verlo desde otro programa. Guardarlo como un .bmp.
Muchísimas gracias.
  Respuesta:  Daniel Salazar
Hola Marisa. La respuesta que te di anteriormente es válida para C++ Builder, pero leí mal el encabezado de tu pregunta y no me percaté que era para Visual C++. Yo no manejo ese compilador, pero te sugiero que sigas la lógica de la respuesta anterior, es decir, que busques dentro del objeto que despliega el gráfico algún método de salvar imágenes.
  Respuesta:  Daniel Salazar
Hola Marisa
Suponiendo que tu imagen está desplegada en un objeto llamado Image1, el siguiente código, inserto en un if(SaveDialog->Execute)
te resolverá el problema. Recuerda colocar la extensión bmp en el Save Dialog.
Image1->Picture->Bitmap->SaveToFile(SaveDialog->FileName);

    Pregunta:  38302 - COMO CONFIGURAR EL PUERTO SERIAL PARA RECIBIR Y ENVIAR DATOS
Autor:  Marco Corona Ruiz
Todo esto lo tengo que hacer en programación en C, la configuracion es en la velocidad 9600bps,sin paridad, bit de datos(8), bit de paro.

Gracias....
  Respuesta:  Javier R
En la siguiente dirección puedes encontrar el código fuente para manejar el puerto serie desde c:

www.programmersheaven.com

estando ahí te vas al apartado 'c/c++', luego donde dice 'source code' y finalmente donde dice 'serial comm' y ahí encontrarás lo que necesitas. Si gustas envíame un correo y te mando los fuente.
Nos vemos pronto

    Pregunta:  39512 - QUE ES UNA BANDERA Y COMO SE DECLARA EN UN PROGRAMA EN C
Autor:  Meztli VALERIANO OROZCO
Agradeceria pronta respuesta
  Respuesta:  mari jimenez
Hola una bandera,,, no se muy bien de esto pero tengo algo de conocimientos y si alguien mas te puede dar una respuetas adelante,, sera bien venida para tus conocimientos.

Una bandera es una variable que te puede avisar si ocurrio algun suceso que tienes predefinido y quieres que se ejecute algo despues de que suceda dicho suceso..

En un lenguaje c creo lo puedes declarar de tipo entero..

int ban;

este en un programa si lo utilizas por ejemplo:

tienes una secuencia de instruciones en las cuales tienes condiciones y sis tales condicones se cumplen puedes poner a la bandera como 0 o 1 que son los valores de tipo boolenos..

si tal condicion se cumple puedes ejecutar otras instrucciones y si no puede seguir ejecutando la misma intrucciòn o el conjunto de intrucciones.
  Respuesta:  MEZTLI VALERIANO OROZCO
Una bandera es una constante declarada al principio del programa con la palabra clave #define y que almacenara el valor de verdadero o falso segun convenga al programador , para salir de un ciclo for, while o do whiel segun lo requiera el programador.
  Respuesta:  Felipe Sandoval
Una bandera es simplemente una variable que puede ser declarada con cualquier nombre y de cualquier tipo, tiene múltiples usos.

Ejemplo: si tienes un ciclo para contar los elementos de un arreglo (para lo cual debes llegar hasta el final), pero a la vez quieres saber si un elemento específico está presente:

bandera=0
mientras no sea fin del arreglo {
si el arreglo contiene al elemento
bandera=1;
incremento el contador de búsqueda en el arreglo
}
escribo "La cantidad de elementos del arreglo es: contador
si (bandera==1)
escribo "El elemento SI se encontraba dentro del arreglo"
sino
escribo "El elemento NO se encontraba dentro del arreglo"

Suerte
Felipe

    Pregunta:  39837 - COMO CONECTARME A MYSQL COM C++ BUILDER
Autor:  Fernando Rodelo
Alguien podria ayudarme, necesito saber como conectarme a una base de datos de Msql usando C++ Bulder 4.0, y poder usar tando sus tablas como los procedimientos y consultas existentes en la base de datos.

Muchas gracias por su ayuda
  Respuesta:  Rafael Hernampérez Martín
Prueba a instalar el driver ODBC de mySQL y crear una entrada ODBC para tu base de datos. Creo que no tendrás ningún problema en usarlo.

    Pregunta:  39922 - REGISTAR OBJETOS COM
Autor:  fran dominguez
Para probar unos filtros que viene como ejemplo en DirectX8 , al compilarlos estos generan un fichero .lib, que contiene un objeto COM , el problema es que no se como registarlo para poder usarlo.

¿Podeis ayudarme?

Gracias
  Respuesta:  Fernando Gómez
Para obtener cualquier registro COM, haces lo siguiente:

1. Gracias a ese .lib, sabrás cómo es la interfaz.
2. Gracias a ese .lib o al registry, o inclusive a la documentación del componente, sabes su CLSID y su IID. Si no, puedes conseguir el CLSID a través de la función CLSIDFromProgID(...).
3. Todo lo que tienes que hacer es llamar a CoCreateInstance:

// tu función...
HRESULT hRet = S_OK;
IMiInterfaz* pInterfaz = NULL;

hRet = CoCreateInstance(CLSID_DE_TU_COMPONENTE,
NULL,
CLSCTX_ALL,
IID_DE_TU_INTERFAZ,
(void**)&pInterfaz
);
if (FAILED(hRet)) throw hRet;

Nota que en el segundo parámetro que pasas a CoCreateInstance, mandas un NULL. Este parámetro se emplea cuando quieres emplear agregación. La agregación es la manera en la que COM permite la herencia de componentes. Para ello, pasas la referencia de un puntero a IUnknown.

Espero haberte ayudado.

- Tasslehoff -

    Pregunta:  40069 - MODO GRAFICO MAYOR DE 640X480 C/PAS
Autor:  Carlos Hernandez
Como puedo hacerle para iniciar el modo grafico con una resolucion mayor 640x480. En lenguaje C o PASCAL.
  Respuesta:  Eider Mauricio Aristizábal Erazo
S O L O P A R A L E N G U A J E T U R B O C + +

FELICIDADES
ESTA ES TU SOLUCION
256 COLORES PARA SETEAR VARIAS RESOLUCIONES

Es un driver sencillo.
Primero te aclaro que aquí en esta web está la solución, solo te guiaré hasta encontrarla. ok...

1) Copia la direccion que te presento a continuación

http://www.lawebdelprogramador.com/codigo/enlace.php?idp=188&id=13&texto=C/Visual+C

Peguela en la barra de direccion del navegador de internét y presione enter.
2) Te aparece el asistente para descargar archivo, lo descargas y luego lo descomprimes,
trae dos archivos, el "svga256.bgi" lo guardas en la libreria BGI

3) Abris el archivo "svga256.cpp" con el compilador y al final encontraras esta funcion

int huge detectVGA256()
{
int vid=2;
return vid;
}

4) en la línea:
int vid=2;

este 2(dos) lo podes pasar progresivamente de 1 a 4 (a menor valor menor resolución)dependiendo de la resolucion que soporte tu monitor, l he hecho desde 640 * 480 hasta el 1024*768

por ejemplo para 800*600 serà de la siguiente forma:

int huge detectVGA256()
{
int vid=3;// a 800*600
return vid;
}

comunicame cualquier pregunta

|<  <<  55 56 57 58 59 60 61 62 63 64 65  >>  >|