C++ / c ++ windows / Convertir algún código de C ++ a C Convertir algún código de C ++ a C Intereting Posts Cómo usar qsort para cadena en C ++ impulsar shared_from_this () En c ++, cómo traducir un punto unido a otro en el espacio 3D de acuerdo con las rotaciones del cuaternión más recientes Push_back causando un error al usar These Wonders Happen To Your Body If You Start Consuming Two Eggs A vectores en C ++ Day Convertir QDate a Qstring? El inspector de código de QtCreator se rompe cuando uso la marca -isistema en lugar de INCLUDEPATH ¿Cuáles son las unidades y límites de la magnitud del gradiente? ¿Cómo leo una línea de tubería FIFO / nombrada línea por línea desde una aplicación de C ++ / Qt Linux? Posible duplicado: El código C se comstack como C ++, pero no como C Editar: Recopilé la fuente de la biblioteca como C, y eso lo arregló. Tengo este código que necesito usar en mi aplicación. Es para escribir en el puerto serie, y no puedo descubrir cómo ejecutarlo en C. Tengo una versión en C ++, así como una versión que se parece más a C, diseñada para comstackr con el Borland Comstackdor C ++ 5.5, pero no puedo comstackrlo allí o en mi proyecto. Edit: Debo tener en cuenta que comstack (y enlaza) cuando compilo como c ++, pero no cuando compilo como c. Aquí está el error del enlazador que recibo: 1>InpoutTest.obj : error LNK2019: unresolved external symbol _Out32@8 referenced in function _main 1>InpoutTest.obj : error LNK2019: unresolved external symbol _Inp32@4 referenced in function _main Aquí está el código c ++. No necesito la funcionalidad de línea de comandos, solo necesito poder llamar a Out32 (). Ni siquiera necesito ser capaz de leer. #include "stdafx.h" #include "stdio.h" #include "string.h" #include "stdlib.h" /* ----Prototypes of Inp and Outp--- */ short _stdcall Inp32(short PortAddress); void _stdcall Out32(short PortAddress, short data); /*--------------------------------*/ int main(int argc, char* argv[]) { int data; if(argc<3) { //too few command line arguments, show usage printf("Error : too few arguments\n\n***** Usage *****\n\nInpoutTest read \nor \nInpoutTest write \n\n\n\n\n"); } else if(!strcmp(argv[1],"read")) { data = Inp32(atoi(argv[2])); printf("Data read from address %s is %d \n\n\n\n",argv[2],data); } else if(!strcmp(argv[1],"write")) { if(argc<4) { printf("Error in arguments supplied"); printf("\n***** Usage *****\n\nInpoutTest read \nor \nInpoutTest write \n\n\n\n\n"); } else { Out32(atoi(argv[2]),atoi(argv[3])); printf("data written to %s\n\n\n",argv[2]); } } return 0; } Aquí está la otra muestra: #include #include #include /* Definitions in the build of inpout32.dll are: */ /* short _stdcall Inp32(short PortAddress); */ /* void _stdcall Out32(short PortAddress, short data); */ /* prototype (function typedef) for DLL function Inp32: */ typedef short _stdcall (*inpfuncPtr)(short portaddr); typedef void _stdcall (*oupfuncPtr)(short portaddr, short datum); int main(void) { HINSTANCE hLib; inpfuncPtr inp32; oupfuncPtr oup32; short x; int i; /* Load the library */ hLib = LoadLibrary("inpout32.dll"); if (hLib == NULL) { printf("LoadLibrary Failed.\n"); return -1; } /* get the address of the function */ inp32 = (inpfuncPtr) GetProcAddress(hLib, "Inp32"); if (inp32 == NULL) { printf("GetProcAddress for Inp32 Failed.\n"); return -1; } oup32 = (oupfuncPtr) GetProcAddress(hLib, "Out32"); if (oup32 == NULL) { printf("GetProcAddress for Oup32 Failed.\n"); return -1; } /***************************************************************/ /* now test the functions */ /* Try to read 0x378..0x37F, LPT1: */ for (i=0x378; (i<0x380); i++) { x = (inp32)(i); printf("port read (%04X)= %04X\n",i,x); } /***** Write the data register */ i=0x378; x=0x77; (oup32)(i,x); printf("port write to 0x%X, datum=0x%2X\n" ,i ,x); /***** And read back to verify */ x = (inp32)(i); printf("port read (%04X)= %04X\n",i,x); /***** One more time, different value */ i=0x378; x=0xAA; (oup32)(i,x); printf("port write to 0x%X, datum=0x%2X\n" ,i ,x); /***** And read back to verify */ x = (inp32)(i); printf("port read (%04X)= %04X\n",i,x); FreeLibrary(hLib); return 0; } Cualquier ayuda sería apreciada. • Obtener la dirección del objeto de clase de plantilla conduce a una instanciación completa de los parámetros de plantilla • ¿Cómo exporto funciones de clase, pero no toda la clase en una DLL? • Cómo acceder al destino de std :: tr1 :: shared_ptr en GDB • ¿Cómo iniciar otro progtwig sin tener que esperar en C ++? • Función miembro de C ++ anulación virtual y sobrecarga al mismo tiempo © 2017 C++ Topics Terms Privacy Policy Es posible que deba envolver los prototipos de Inp32 / Outp32 con “extern C {/ * … * /}”. Este código parece que está leyendo / escribiendo el puerto de la impresora, no el puerto serie. Lo está haciendo al cargar alguna DLL que le da acceso directo al hardware. Para que funcione, deberá usar la misma DLL (o similar). Desde el punto de vista de las cosas, está usando Inpout32.dll , por lo que conseguir eso podría ser útil. Tuve que recomstackr la biblioteca como C, luego usar esa versión. La versión existente fue comstackda como C ++. • Visual Studio 2013: CL.exe salió con el código -1073741515 • QTableWidget: Sólo números permitidos • ¿Cómo verificar si el parámetro de plantilla de la función tiene un tipo determinado? • ¿Por qué siempre me “termina la llamada después de lanzar una instancia de …” al lanzar mi destructor? • ¿Está garantizado que std :: array es POD si T es POD? • Enlace de archivos (.a) en objeto compartido (.so) • Clases de envoltorio para tipos de datos primitivos • ¿Cómo se almacenan los enteros en la memoria? • ¿QMessageBox bloqueará la ejecución de todo el hilo principal en Qt? • Elemento en el índice en un std :: set? • terminar llamado después de lanzar una instancia de ‘cl :: sycl :: detail :: exception_implementation ‘