Salve, ho scritto la seguente funzione in C++ per leggere una stringa da Excel e restituire il valore 1 se è uguale a una parola prefissata, ad esempio "ciao" e 0 se la parola letta da Excel è diversa da "ciao". Il programma ha in ingresso e in uscita la struttura di tipo xloper. Il codice è il seguente:
EXPORT_EXTERN_C xloper* acquisisci(xloper *xargs)
{
char *linea;
char *s;
linea = new char[50];
s = new char[50];
s = "ciao";
double p, q;
p = 0;
q = 1;
xloper *xresult;
xresult = new xloper[1];
xresult->xltype = xltypeMulti;
xresult->val.array.lparray = new xloper[1];
xresult->val.array.lparray[0].xltype = xltypeNum;
xargs->xltype = xltypeMulti;
xargs->val.array.lparray = new xloper[1];
xargs->val.array.lparray[0].xltype = xltypeStr;
strcpy_s(linea, 50, xargs->val.array.lparray[0].val.str);
if(strcmp(linea, s)!=0)
{xresult->val.array.lparray[0].val.num = p;}
else
{xresult->val.array.lparray[0].val.num = q;}
xresult->val.array.lparray[0].xltype |= xlbitDLLFree;
xresult->xltype |= xlbitDLLFree;
delete[] linea;
delete[] s;
return (xresult->val.array.lparray);
}
Il programma compila correttamente, ma se scrivo in Excel la parola ciao e poi chiamo la funzione in un'altra cella, anzichè darmi il valore 1 mi spunta la segnalazione errori di Microsoft. Non so se è un problema di formati incompatibili. Qualcuno può aiutarmi per favore?? Su internet non trovo niente, trovo solo lettura stringhe da Java, ma io Java non lo conosco. Questo problema col C++ non ho trovato nulla. Help please!!

Rispondi quotando