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!!