Недавно VS17 начал часто выдавать мне сообщение «Инкрементальный линкер перестал работать», я имею в виду ОЧЕНЬ МНОГО. Ничего не обновлял (ОС или VS). Это началось внезапно без видимой причины. В большинстве случаев мне удавалось изменить свой код, чтобы этого не происходило.
Это мой текущий код (он должен выполнять XOR строки и возвращать шестнадцатеричную экранированную строку):
__inline char* EncryptString(const char* String, const char* Key)
{
char* szEncrypted = new char[lstrlenA(String) + 1];
memcpy(szEncrypted, String, lstrlenA(String));
for (int32_t i = 0; i < lstrlenA(String); ++i)
szEncrypted[i] = String[i] ^ Key[i % (sizeof(Key) / sizeof(char))];
std::stringstream lpStream;
for (int32_t i = 0; i < lstrlenA(szEncrypted); ++i)
{
char cCharInd = szEncrypted[i];
int32_t nCharNum = static_cast<int32_t>(cCharInd);
lpStream << "\\x" << 2;
}
std::string sHexEscaped = lpStream.str();
lpStream.clear();
delete[] szEncrypted;
char* szReturn = new char[sHexEscaped.length() + 1];
memcpy(szReturn, sHexEscaped.c_str(), sHexEscaped.length() + 1);
return szReturn;
}
Будет какое-нибудь исправление? Или, может быть, вы знаете, что в моем коде вызвало это? (Да, я удаляю возвращенный символ *. Не то чтобы он имел какое-либо отношение к ошибке компоновщика, но не запугивай меня из-за этого). Или кто-нибудь еще сталкивался с этим в VS17?
Как? Я честно не знаю как
Это в настройках компоновщика в разделе Общий.
Он говорит, что уже выключен, тф?
Этого я не видел ..
Что ж, все равно спасибо за попытку
Вы пробовали «чистое» действие, когда оно начинает плохо себя вести?
Хотел бы я знать, что это значит
Отключите установленный антивирусный продукт и попробуйте еще раз.
@ Itsenough1 В вашем Solution Explorer щелкните правой кнопкой мыши имя вашего проекта и выберите Clean
@KillzoneKid Спасибо, дружище, это работает. Вы можете дать ответ, если хотите, и я его приму.
@ Itsenough1 Рада, что у вас тоже сработало. Меня это очень расстраивало. Некоторое время не происходило с момента последнего обновления





Thanks mate, it works. You can make it an answer if you want and I'll accept it
Похоже, это может быть какая-то ошибка в VS2017. Такая ошибка компоновщика случилась со мной даже с относительно небольшим кодом, и такая простая вещь, как изменение выходного значения std::cout, например, может вызвать ее. Похоже, решение состоит в том, чтобы запустить действие Clean над кодом, который можно найти в
Solution Explorer -> [Щелкните правой кнопкой мыши имя проекта] -> Clean
Я бы сейчас просто отключил инкрементное связывание.