【发布时间】:2016-09-02 22:40:12
【问题描述】:
我正在使用 Visual Studio Community 2015 开发 C/C++ 应用程序。
我用来构建我的应用程序的系统库:OneCoreUAP.lib。我使用的是 Windows 8.1。
我使用了https://msdn.microsoft.com/en-us/library/windows/hardware/ff553788%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396中定义的函数if_nametoindex
在链接中,他们指定您需要 ONeCOreUAP.lib
但我发现了另一个指向另一个库的链接:Iphlpapi.lib:https://msdn.microsoft.com/en-us/library/windows/desktop/bb408409%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396
启动我的应用时出现以下错误:
The program can't start because api-ms-win-core-synch-l1-2-1.dll is missing from your computer.
Try reinstalling the program to fix this problem.
在搜索 dll 时,我从这个链接知道: https://msdn.microsoft.com/en-us/library/windows/desktop/mt657574(v=vs.85).aspx
那个:
Introduced into api-ms-win-core-synch-l1-2-1.dll in Windows 10.0.10240.0
我尝试更新 Windows 10 SDK,但这并没有解决问题。
如何解决问题?我应该将我的 windows 8.1 升级到 windows 10 来解决它吗?
【问题讨论】:
-
你正在使用哪些你认为依赖于那个 DLL 的函数?
-
如果您使用 Windows 10 SDK,则默认情况下该程序需要 Windows 10 并且不会在旧系统上运行。特别是,onecoreUAP 库在 Windows 8 上不受支持。
-
@andlabs:我在问题中添加了命名函数。
-
我不确定您是如何进入该页面的,但它表示至少从 Windows Vista 开始支持该功能。它在 MSDN 上的主页是 here,该页面显示您链接的是
Iphlpapi.lib而不是OneCoreUAP.lib。OneCoreUAP.lib并且该 MSDN 页面适用于仅在 Windows 10 和更高版本上受支持的 Windows 通用应用程序(专家可以确认这一点吗?),而您似乎没有写一个。但我不完全确定您找到该页面而不是标准桌面页面时发生了什么。 -
@andlabs:是的,我得到的页面表明您应该链接到 OneCoreUAP.lib,所以我链接了它。我想我应该链接到 Iphlpapi.lib。
标签: c++ windows winapi dll windows-10