考えられることはすべて試しましたが、何も機能しません。私はVB.Netで書いたバイナリファイルを持っています。これは基本的に整数で構成されており(もちろんバイナリで)、次のデータの配列サイズを示し、次にバイナリデータとして浮動小数点数を示します。このファイルはVB.Netから問題なく書き込まれ、次のコードを使用してVisualC++から問題なく読み戻すことができます。
ifstream output("c:\\out.ipv", ios::in | ios::binary);
UInt32 len;
UInt32 *ptr2 = (UInt32*)&len;
output.read((char*)ptr2, 4);
これにより、正しい値456780が返されます。バイト数は76、248、6、0です。iPadでまったく同じコードを実行すると、1043089572になります。以下の代替方法を使用すると、次のようになります。
NSData *data = [[NSData alloc] initWithContentsOfFile:filePath];
UInt32 num;
const NSRange numV = {0, 4};
[data getBytes:&num range:numV];
このコードは別の値124724を返しますが、ファイルから取得されている正確なバイトを読み取る方法がわかりません。それは私が理解しようとしていた他の何かですが、うまくいくことができませんでした。Visual C ++で機能する同じ方法がiPadで機能しない理由はありますか?私はこれで本当に途方に暮れています。