Puedes utilizar la función "c_str()" que devuelve una cadena al estilo de C, es decir, terminada en cero, de esta manera puedes trabajar con la cadena como lo harías declarando un puntero a char (char *pCadena), por ejemplo:
AnsiString sCadena="estoesunacadena";
Char *pCadena=sCadena.c_str(); //Variable AnsiString convertida a char*
std::cout << *pCadena; //Imprime el primer carácter de la cadena.
pCadena++; //Salta a la siguiente dirección de memoria,
donde se almacena el siguiente carácter de
la cadena, así hasta el último que será NULL
es decir "0".
Respecto a los ficheros binarios, debes trabajar con streams para el acceso a ficheros partiendo de la clase base "ios", utilizando las clase "istream" y "ostream".
Encontrarás información muy detallada con buenos ejemplos de como hacerlo en el curso sobre C++ de la dirección
http://c.conclase.net, hay un capítulo y un apéndice de dicho curso dedicado a ello.
Espero que te sirva...