La partie de code fausse se trouve dans le sscanf.
sscanf((char*)&sNum1,"%d",&n1);
Lorsque tu fais ((char*)&sNum1, tu caste en char * un pointeur sur un objet CString et nom un pointeur sur la chaine elle-même.
L'objet CString encapsule un pointeur sur une chaine de caractère.
Si tu veux un pointeur récuperer celle-ci, il faut que tu fasses appel à la fonction [i]LPTSTR GetBuffer(int nMinBufLength)[/i] ou nMinBufferLenght est la taille minimum de la chaine à récupérer sans le caractère de fion c de chaine (\0).
Si tu veux que cela marche, voici ce qu'il faut faire :