几周前我问了一个类似的问题,但我被卡住了,我真的不知道我是否没有犯任何其他错误。
我现在可以比较清楚地分辨出我在与什么战斗。
我正在尝试用 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的大小会是多少,所以请不要建议任何带有固定向量的东西。这就是我会卡住的地方。