Привет, ребята, я работаю над приложением, и я удалил CRT, чтобы сохранить много места в исполняемом файле и сделать его как можно меньшим :) Дело в том, что когда я извлекал CRT я также получил тонны ошибок на неразрешенный внешний и я был в состоянии удалить большинство из них просто добавив несколько операторов, подобные этим:Убрали библиотеку времени выполнения C, и я получаю некоторые нерешенные внешние ссылки
void * __cdecl operator new(unsigned int bytes) {
return HeapAlloc(GetProcessHeap(), 0, bytes);
}
void __cdecl operator delete(void *ptr) {
if(ptr) HeapFree(GetProcessHeap(), 0, ptr);
}
extern "C" int __cdecl __purecall(void) {
return 0;
}
extern "C" const DWORD_PTR __security_cookie = 0xE64EBB40;
extern "C" void __fastcall __security_check_cookie(DWORD_PTR cookie) {
if (cookie != __security_cookie)
__asm int 3;
}
, но теперь я застрял с последними тремя ошибками и я не знаю, как их решить, и тот, который мне действительно интересен, является ошибкой _memmove? Я не использую оператор memmove в любом месте своего кода, поэтому я не знаю, почему я его получаю: P
atleast вот ошибки, я был бы очень благодарен за ваши ответы.
Error 2 error LNK2001: unresolved external symbol "void __cdecl std::_Xbad_alloc(void)" ([email protected]@@YAXXZ) C:\Users\Fluttershy!\documents\visual studio 2012\Projects\PincelStub\PincelStub\PincelStub.obj
Error 3 error LNK2001: unresolved external symbol "void __cdecl std::_Xlength_error(char const *)" ([email protected]@@[email protected]) C:\Users\Fluttershy!\documents\visual studio 2012\Projects\PincelStub\PincelStub\PincelStub.obj
Error 4 error LNK2001: unresolved external symbol _memmove C:\Users\Fluttershy!\documents\visual studio 2012\Projects\PincelStub\PincelStub\PincelStub.obj
Генератор кода предполагает, что вы свяжете ЭЛТ, чтобы генерировать вызовы для примитивов, таких как memmove(), когда он может использовать его для оптимизации кода. Оставив вас с задачей реализовать это. И вы используете стандартные методы библиотеки C++, предоставляя вам задачу реализовать вспомогательные функции, которые она использует. Это работа, которая никогда не выполняется. Особенно, когда вы обнаруживаете, что вы не можете вообще пропускать обработку ошибок: :: operator new должен бросить std :: bad_alloc. Вот когда это действительно становится болезненным :) –