2012-08-09 3 views
0

Я получаю сообщение выше, когда создаю свой код.ошибка MSB3073: команда «" .. .. .. .. lib Tests.exe ": VCEnd" завершена с кодом -1073740940

Может ли кто-нибудь пролить свет на эту проблему и помочь мне?

Большое спасибо

С наилучшими пожеланиями

Chintan

Обновленный вопрос: Вышеуказанная ошибка возникает в следующей части кода.

vector <double> vBandSubset (vBand.size(), 0.0); 
vBandSubset = vBand; 
double dMeanBand=GetMean(vBand); 
int j = 0; 
for (int i = nBin1 - 3; i <= nBin1 + 3; i++) 
{ 
    vBandSubset[i] = dMeanBand*(1 + 0.00001*j); 
    j++; 
} 
+0

Попробуйте щелкнуть правой кнопкой мыши по VS (допустим?) И запуститься как администратор. Затем перестройте свой проект. Дай мне знать! – ChiefTwoPencils

+0

Я использую VS как администратор. Нужно ли предоставлять дополнительную информацию? Но я не уверен, что еще я могу сделать. Еще раз спасибо. –

+2

Вы можете предоставить исходный код ... – Poodlehat

ответ

1

Не зная подробностей о том, что именно вы делаете это трудно сказать что-либо с уверенностью, но -1073740940 == 0xC0000374 == STATUS_HEAP_CORRUPTION. Он проливает свет?

[UPD] Предполагая, что интерпретация значения ошибки как NTSTATUS была правильной, вы развращаете свою кучу. Предполагая, что это произойдет в коде, который вы показали, наиболее вероятно, что либо nBin1 < 3, либо nBin1 + 3 >= vBandSubset.size(). В любом из этих случаев ваше назначение в цикле будет перезаписывать области технической кучи до или после блока данных vBandSubset.

Поскольку это тест, я предлагаю вам использовать vBandSubset.at(i) вместо vBandSubset[i]. В отличие от operator[], at() проверяет свой аргумент и генерирует исключение, если оно недействительно. Исключение намного легче отлаживать, чем повреждение памяти.

PS. Вы можете отредактировать свой вопрос и поместить там код. Это удобнее для читателей.

+0

Большое спасибо. Это сработало! Я уточню свой вопрос. Еще раз спасибо. –

+0

@chintan Добро пожаловать. – atzz

Смежные вопросы