FileRead_sizeがうまくいきません
Posted: 2012年11月07日(水) 18:41
こんにちは
VisualStudio2010、DXライブラリ、C++でプログラミングしています。
外部ファイルから構造体に取得したデータの中の一つであるconst wchar_t* FilePathを、構造体のアドレスを関数に渡して、FileRead_sizeでサイズを調べるという処理をしようとしているのですが、どうにもうまくいきません。
試しにこのような関数を作ってみたところ、FileRead_size関数を呼び出す前の①、③は正しくパスが出力されてるのですが、この関数を使ったとたん(②、④での出力として)中身が正しく表示されなくなりました。
この点についても、なぜFileRead_size関数でFilePathの中身まで変わってしまうのか分かりません。
また、これで取得したファイルサイズを表示させると-1になっています。
もしかしたら、他の部分におかしなところがあるのかもしれませんが…、コメントアウトや出力を利用してここに絞り込みました。
実際に取得したフォントデータはFileRead_size関数がなければどこでも正しく出力されます。
色々と調べてみたのですが、どうにも自分では解決できそうにないので、知恵を貸していただければうれしいです。
VisualStudio2010、DXライブラリ、C++でプログラミングしています。
外部ファイルから構造体に取得したデータの中の一つであるconst wchar_t* FilePathを、構造体のアドレスを関数に渡して、FileRead_sizeでサイズを調べるという処理をしようとしているのですが、どうにもうまくいきません。
typedef struct _FontData {
const wchar_t* FontName;
const wchar_t* FilePath;
…
} FontData;
void SetFontTest(FontData* fontdata) {
DrawFormatString(100, 50, White, L"%s", fontdata->FilePath); //①
int filesize = FileRead_size(fontdata->FilePath);
DrawFormatString(100,90, White, L"%s", fontdata->FilePath); //②
}
void WINAPI WinMain(略){
…
FontData fontdata;
GetFontData(L"fontconf", &fontdata); // フォントデータ取得(正常)
DrawFormatString(100, 250, White, L"%s", fontdata.FilePath); //③
SetFontTest(&fontdata);
DrawFormatString(100, 290, White, L"%s", fontdata.FilePath); //④
…
}
この点についても、なぜFileRead_size関数でFilePathの中身まで変わってしまうのか分かりません。
また、これで取得したファイルサイズを表示させると-1になっています。
もしかしたら、他の部分におかしなところがあるのかもしれませんが…、コメントアウトや出力を利用してここに絞り込みました。
実際に取得したフォントデータはFileRead_size関数がなければどこでも正しく出力されます。
色々と調べてみたのですが、どうにも自分では解決できそうにないので、知恵を貸していただければうれしいです。