数週間前に同じような質問をしましたが、行き詰まり、他に間違いがなかったかどうか本当にわかりませんでした。
私は今何と戦っているのかを比較的はっきりと知ることができます。
C++でVB6関数を書き直そうとしています。難しいラインはこれです:
vector<int>vIntegerValues;
vIntegerValues.resize(iCountIntegers);
fseek(iReadFile, uFromBytePos * sizeof(int), SEEK_CUR);
size_t readElements = fread(&vIntegerValues[0], sizeof(int), iCountIntegers, iReadFile);
私のVB6バージョンはこれです:
Dim vIntegerValues() As Integer
ReDim vIntegerValues(0 To iCountIntegers)
Get #iReadFile, uFromBytePos, vIntegerValues()
ただし、C ++関数は、期待どおりではないデータで整数ベクトルを埋めます。
たとえば、VB6では、最初の値は次のとおりです。0,0,2,2,0、-2,0、-2,0,2,0,0、-2、
また、C ++では、最初の値は131074、-131072、-131072、131072、0、65534です。
私がどこが間違っているかを彼が見たとき、誰かが助けることができますか?どうもありがとうございます。
ps:ベクトルvIntegerValuesのサイズが事前にわからないので、固定ベクトルで何も提案しないでください。これは私が行き詰まるところです。