STLのstring?
それを3000個も用意する意味ないでしょ
配列やstringが何なのか分かってないとしか

やるなら
char t[ 3000 ]でしょ (要素数は3000から可変にすべきだけど)

FileRead_read( buf,FileRead_size,t_FileName );
何でファイルハンドル指定する第3匹数にstringをぶち込んでるの?
訳分からん事してるよ