|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - blasata
26
« en: Viernes 4 de Diciembre de 2009, 13:53 »
..ahora!
27
« en: Viernes 4 de Diciembre de 2009, 12:15 »
También sale esto error LNK2001: símbolo externo public: virtual int __thiscall FEDM_ISCReader::SetTableData(int,unsigned int,unsigned int,class CString)"(?SetTableData@FEDM_ISCReader@@UAEHHIIVCString@@@Z) sin resolver pero dentro de la librería hay, lo más parecido: public: virtual int __thiscall FEDM_ISCReader::SetTableData(int,unsigned int,unsigned int,class ATL::CStringT<char,class StrTraitMFC_DLL<char,class ATL::ChTraitsCRT<char> > o public: virtual int __thiscall FEDM_ISCReader::SetTableData(int,unsigned int,unsigned int,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > Tiene algo que ver con las opciones de ATL? Qué puedo hacer?  .. Creo que tengo que recompilar el archivo(¿dll o el lib?) para que sea MULTIBYTE, ¿pero cómo?
28
« en: Viernes 4 de Diciembre de 2009, 11:02 »
Hola, mirar tengo una dll que contiene public: virtual int __thiscall FEDM_DataBase::GetData(int,class ATL::CStringT<char,class StrTraitMFC_DLL<char,class ATL::ChTraitsCRT<char> > > &,int,int) 0x1005d500 0x0005d500 462 (0x1ce) FedmIscCoreVC90.dll C:xertiumAutopréstamo PortátilesBUZÓNCD Lector RFIDCopia de ID ISC.SDK.Win V3.00.07 SOFTWAREfedm-classlibFedmIscCoreVC90.dll Exported Function Pero al compilar me dice el Visual que: public: virtual int __thiscall FEDM_DataBase::GetData(int,class ATL::CStringT< wchar_t,class StrTraitMFC_DLL< wchar_t,class ATL::ChTraitsCRT< wchar_t> > > &,int,int)" (?GetData@FEDM_DataBase@@UAEHHAAV?$CStringT@_WV?$StrTraitMFC_DLL@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@HH@Z) Parece que busca una función diferente de la que hay en la dll, cómo cambio esa w para que vaya bien?? gracias
29
« en: Lunes 30 de Noviembre de 2009, 13:43 »
_T hecho. La plaquita es de reles, lleva un chip usb-i2c de ftdi. Y ya está funcionando bien. Podría haber hecho el control de reles por pparalelo pero ya voy a meter un LCD y las entradas digitales de esa forma y solo tengo dos puertos de este tipo. Pero ahora he estado leyendo que WXP no deja acceder fácil a este puerto y que hay que usar io.dll o algo así: ¿Se puede seguir usando con este puerto CreateFile?¿valen los mismos parámetros?
h=CreateFileW(_T("LPT1"),GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);
¿O pueden servir las funciones int_outp int_inp?
30
« en: Domingo 29 de Noviembre de 2009, 18:51 »
Bien, he cambiado las definiciones de char a TCHAR como dices, y también he puesto "COM1" del primer parámetro de CreateFile a L"COM1" porque me seguía diciendo que error C2664: 'CreateFileW' : no se puede convertir el parámetro 1 de 'const char [5]' a 'LPCWSTR' voy a conectar el PC con la plaquita a ver si le manda los comandos como dios manda. Espero no tener problema aunque tenga un puerto serie virtual... gracias
31
« en: Domingo 29 de Noviembre de 2009, 14:42 »
Vale, he usado este código para acceder al puerto: HANDLE h; /* handler, sera el descriptor del puerto */ DCB dcb; /* estructura de configuracion */ DWORD dwEventMask; /* mascara de eventos */ /* abrimos el puerto */ h=CreateFile("COM1",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL); if(h == INVALID_HANDLE_VALUE) { /* ocurrio un error al intentar abrir el puerto */ } /* obtenemos la configuracion actual */ if(!GetCommState(h, &dcb)) { /* error: no se puede obtener la configuracion */ } /* Configuramos el puerto */ dcb.BaudRate = 9600; dcb.ByteSize = 8; dcb.Parity = NOPARITY; dcb.StopBits = ONESTOPBIT; dcb.fBinary = TRUE; dcb.fParity = TRUE; /* Establecemos la nueva configuracion */ if(!SetCommState(h, &dcb)) { /* Error al configurar el puerto */ } /* Para que WaitCommEvent espere el evento RXCHAR */ # SetCommMask(h, EV_RXCHAR); while(1) { DWORD n; char enviar; char recibido; /* Enviamos... */ enviar = 'f'; if(!WriteFile(h, &enviar/*puntero al buffer*/, 1/* 1 byte*/, &n, NULL)){ /* Error al enviar */ }... pero daba error: error C2664: 'CreateFileW' : no se puede convertir el parámetro 1 de 'const char [5]' a 'LPCWSTR'al generar la solución, así que he deshabilitado en propiedades-->general-->juego de caracteres: lo cambio de Utilizar juego de caracteres Unicode a Sin definir. Así compila bien. Pero.. ¿Se puede hacer que el código compile sin hacer esto de deshabilitar el Unicode o da igual? ¿Esto es recomendable?
32
« en: Sábado 28 de Noviembre de 2009, 13:13 »
Hola a todos, espero por favor puedan ayudar, estoy recién llegado a VC++ y estoy un poco perdido: tengo una aplicación de consola, la estoy haciendo con VC++ 2008 Express(aunque es un poco matar moscas a cañonazos) y trucada para que pueda compilar los proyectos con MFC. El problema es que no sé acceder al puerto serie y he usado el siguiente código para acceder al él:
#include <conio.h> #include <stdio.h> #include <dos.h> #include <math.h> #include <bios.h>
int puerto,k,j,dato,config; char lectura[1],dato1[2];
char leer() { do{ dato=bioscom(2,0x83,puerto); } while (!kbhit()); return(dato); }
void main(void) { clrscr(); printf("Ingrese puerto COM a usar: "); scanf("%d", &puerto); while(puerto<1 || puerto>4) { clrscr(); printf("ERROR... Debe ingresar 1, 2, 3 o 4 !!!nn"); printf("Ingrese puerto COM a usar: "); scanf("%d", &puerto); }
puerto--; config=0x83; bioscom(0,config,puerto);
clrscr(); gotoxy(14,4); printf("RECEPCION DE DATOS VIA SERIE"); gotoxy(8,6); printf("Config --> COM %d \ 1200 bps \ 8N1", puerto+1); gotoxy(29,8); printf("Escape --> Salir"); gotoxy(23,10); printf("MONITOR DE RECEPCION: ");
do{ if(!kbhit()) dato1[0]=leer(); if(!kbhit()) { gotoxy(40,12); printf("%1s ",dato1); }
}while(!kbhit());
}
Pero no lo puedo compilar en mi proyecto main.cpp, por eso lo he compilado con TurboC y lo que quiero es llamarlo desde mi aplicación de VC++ que es también de consola. He probado con system, pero se queda sin hacer nada. ¿cómo podría acceder al puerto serie desde esta aplicación de consola de VC++2008 sin usar programas externos? ¿Sería mejor hacer una aplicación de Forms y llamar desde esta a un programa de consola.?
gracias de antemano saludos
|
|
|