我需要刪除我的項目的變形。所以我禁用CRT等,但它給了一些錯誤說無法解析的外部符號malloc /免費。 的錯誤是:無法解析的外部符號__imp__calloc
LNK2001: unresolved external symbol __imp__memcpy
我該如何解決這些符號? 沒有在我的代碼中使用memcpy。我不使用例如RtlCopyMemory的例程。相反,我已經做了我自己的函數內聯彙編
__declspec(naked) void* __stdcall _memcpy(void *dst, const void *src,
int length)
{
__asm
{
push esi
push edi
push ecx
mov esi, dword ptr[esp+20]
mov edi, dword ptr[esp+16]
mov ecx, dword ptr[esp+24]
rep movsb
pop ecx
pop edi
pop esi
ret 12
}
}
它似乎仍然被調用的memcpy出於某種原因? 現在我已經通過將vcruntime.lib鏈接到我的程序來解決了我的問題...
可怕的想法。重新啓用CRT和您需要的任何默認庫,然後繼續。 –
那麼,如果你不打算鏈接傳統上提供它們的庫,你必須自己實現它們。如果你願意,你可以在運行時使用GetProcAddress編寫用於鏈接到win32函數的包裝器,但如果你有更多的話,它不是一個有趣的過程。 –
爲什麼你想從你的項目中刪除標準庫? –