Winapi 在运行时dll(如MSVCR120.dll)上找不到Proc&;MSVCP120.dll
我正在使用NanoServerApiScan.exe扫描二进制文件以获得nano服务器支持。它返回如下错误:Winapi 在运行时dll(如MSVCR120.dll)上找不到Proc&;MSVCP120.dll,winapi,dll,windows-server-2016,nano-server,Winapi,Dll,Windows Server 2016,Nano Server,我正在使用NanoServerApiScan.exe扫描二进制文件以获得nano服务器支持。它返回如下错误: KERNEL32.dll CopyFileA(Proc not found) Please use API CopyFileExA as substitution. MoveFileExA(Proc not found) Please use API MoveFileExW as substitution. ADVAPI32.dll LogonUserW(Pr
KERNEL32.dll
CopyFileA(Proc not found)
Please use API CopyFileExA as substitution.
MoveFileExA(Proc not found)
Please use API MoveFileExW as substitution.
ADVAPI32.dll
LogonUserW(Proc not found)
Please use API LogonUserExExW as substitution.
我可以按照建议让我的二进制文件在nano服务器上工作。扫描还返回MSVCR120.dll和MSVCP120.dll中的错误
MSVCR120.dll
__crt_debugger_hook(Proc not found)
__crtUnhandledException(Proc not found)
__crtTerminateProcess(Proc not found)
_onexit(Proc not found)
MSVCP120.dll
?_Xbad_alloc@std@@YAXXZ(Proc not found)
?_Xout_of_range@std@@YAXPEBD@Z(Proc not found)
??0id@locale@std@@QEAA@_K@Z(Proc not found)
如何修复此类错误?反向转发器包是否也可以重新路由这些API?如果我的客户没有将其服务器配置为反向转发器,该怎么办?只是一个猜测:可能Nano服务器只支持运行链接到通用CRT的代码。您似乎是在链接Visual Studio附带的运行时。因此,您的代码在指向的DLL中使用了这些函数,但Nano附带的版本以某种方式被剥离,只导出常规版本的一个子集(至少这是我的猜测)。第一个符号似乎与调试相关。您是否有过调试构建(不太可能),或者使用调试工具?你的VStudio版本(看起来像是2k13)与Nano兼容吗?理论上,这些“错误”应该通过调整一些编译器/链接器标志来消除。@CristiFati是的,你是对的。我使用的NanoServerApiScan.exe是一个旧的。。我的二进制文件实际上在nano上运行得很好,并进行了建议的更改。