Your first example has "CS_CHAR szExtract;"

Your second example has "CS_CHAR szExtract [10];"

That's a fundamental difference. The first is a char, the second is a char*. You cannot reconcile that with a cast. Make sure you declare an array of char, not just one char.