Hola, estyo mirando el codigo y no encuentro el error y por internet las souciones para otros no me han servido, asi que voy a postear aqui el error y el codigo aver q os parece.
El error es syntax error : missing ';' before 'type' y ocurre en la linea que dice char letra[] = "TRWAGMYFPDXBNJZSQVHLCKE";
Os copio el codigo
spoiler
#include <windows.h>
#include <iostream.h>
#include "Ltc2x.h"
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "time.h"
#include "ctype.h"
#include "math.h"
int main(int argc, char* argv[]) {
HANDLE idPort;
unsigned char ATRT[80], SW[2];
int dimATRT, dimATRL;
char ATRL[80];
//Variables de posicionamiento y recogida de datos
unsigned char DFS[8] = { 0x58, 0x59, 0x00, 0xFF, 0x00, 0x04, 0x46, 0x01 };
unsigned char EFS[2] = { 0x10, 0x05 };
unsigned char DFM[8] = { 0x50, 0x20, 0x00, 0xFF, 0x00, 0x04, 0x01 };
unsigned char EFM[2] = { 0x00, 0x01 };
unsigned char DNIS[] = "";
unsigned char DNIMA[] = "";
unsigned char DNIMP[] = "";
unsigned char DNIE[] = "";
//Variables necesarias para la transformación de formatos
char escribedni[] = "send ";
char DNIFINAL[15] = "";
char DNINT[] = "0000000000000000";
char ATR[] = "";
char TarjetaToLog[56] = "";
int i = 0, j = 0;
//Variables para la escritura del fichero de logs
char ahora2log[150];
char nombreficherolog[20];
char vinculacion[] = "11";
char nombre[] = "xxxxx";
time_t ahora;
struct tm *FechaHora;
time(&ahora);
FechaHora = localtime(&ahora);
strftime(ahora2log, 25, "%Y-%d-%m %a\t%H:%M:%S", FechaHora);
strftime(nombreficherolog, 20, "%d_%b%y.txt", FechaHora);
strcat(ahora2log, "\t");
// Abrir Puerto de Comunicaciones
idPort = C3OPEN("USB");
if (idPort < 0)
ExitMessage("Error al abrir el puerto");
// Averiguar el ATR para escribirlo en los logs
C3RESET(idPort, &dimATRL, ATRL);
// Solicitar Inserción de Tarjeta
C3INSERT(idPort, 0, 10);
// Encendemos la tarjeta
C3POWERON(idPort, 0, 0, &dimATRT, ATRT, &SW[0], &SW[1]);
// Unimos el ATR a los LOGS (Pendiente)
/*for (i=0; i<dimATRT; i++){
cout<<' ';
unsigned int k = (unsigned int) ATRT[i];
if (k < 16) cout << '0'; cout << hex << k; }*/
// Seleccionar DF Santander
C3ISOIN(idPort, 0, 0x00, 0xA4, 0x04, 0x00, 0x08, DFS, &SW[0], &SW[1], 1);
// Seleccionar EF Santander
C3ISOIN(idPort, 0, 0x00, 0xA4, 0x02, 0x00, 0x02, EFS, &SW[0], &SW[1], 1);
//--------------------------------------------------------------------------------------------------
if ((int) SW[0] == 97 && (int) SW[1] == 12) {
// Tarjeta Santander
// Obtener DNI Santander
C3ISOOUT(idPort, 0, 0x00, 0xB0, 0x00, 0x48, 0x0F, DNIS, &SW[0], &SW[1],
1);
for (i = 0; i < 15; i++)
DNINT[i] = DNIS[i];
DNINT[15] = '\0';
for (i = 0; i <= 7; i++) {
if (DNINT[i] == ' ')
;
else
DNIFINAL[j++] = DNINT[i];
}
C3ISOOUT(idPort, 0, 0x00, 0xB0, 0x00, 0x18, 0x1A, DNIE, &SW[0], &SW[1],
1);
for (i = 0; i < 26; i++) {
TarjetaToLog[i] = DNIE[i];
}
TarjetaToLog[26] = '\0';
strcat(ahora2log, "Santander\t");
strcat(ahora2log, DNINT);
strcat(ahora2log, TarjetaToLog);
strcat(ahora2log, "\t");
//-----Santander con letra del NIF---la Quitamos
char letra[] = "TRWAGMYFPDXBNJZSQVHLCKE";
int dniaux = 0;
for (int i = 0; i <= 7; i++) {
dniaux = dniaux + ((int) DNIFINAL[i] - 48) * pow(10, (7 - i));
printf("%d-\n", dniaux);
}
dniaux %= 23;
if (isdigit((int) DNIFINAL[8]) == 0 && letra[dniaux] == DNIFINAL[8])
DNIFINAL[8] = '\0';
//if ((int) strlen(DNIFINAL)==9)
//DNIFINAL[8]='\0';
strcat(escribedni, DNIFINAL);
system(escribedni);
system("campana.exe");
} }
}