【问题标题】:CreateSemaphore Library for WinCE 5.0WinCE 5.0 的 CreateSemaphore 库
【发布时间】:2023-03-31 10:38:01
【问题描述】:

构建 WinCE 5.0 应用程序以使用信号量。我用来创建信号量的函数是 CreateSemaphore()。问题是无法链接应用程序,因为没有引用符号 CreateSemaphore。 Windows 文档 (https://msdn.microsoft.com/en-us/windows/desktop/ms885184) 建议只要我有 nk.lib,就应该构建应用程序。问题是找不到这个库。我也在使用 WinCE 5.0 的标准 sdk。

我已经搜索了 nk.lib 库,但没有找到。

关于这个库在哪里或是否有替代方案的任何想法?我知道这些东西真的很老了,但我希望有人知道我在哪里可以找到这个库。

编辑:我想我应该添加链接错误: 错误 LNK2019:未解析的外部符号 __imp__CreateSemaphoreA 在函数 _Syn_System_Semaphore_initialize 中引用

【问题讨论】:

    标签: windows-ce semaphore


    【解决方案1】:

    在 CE 5.0 中,CreateSemaphore 由 coredll 导出,因此您需要与 coredll.lib 链接。

    【讨论】:

    • 感谢Carsten的回复,不过,下面是我的链接脚本“/NODEFAULTLIB:libc.lib coredll.lib corelibc.lib ole32.lib oleaut32.lib uuid.lib commctrl.lib”。
    • 啊,看到链接器错误,看起来项目没有定义 UNICODE。在这种情况下,winbase.h #define 的 CreateSemaphore 为 CreateSemaphoreA,但该函数在 Windows CE 中不存在。将 UNICODE 添加到您的预处理器定义列表中,它应该寻找 CreateSemaphoreW 代替(并希望在 coredll 中找到它)
    • 我忘了回复,卡斯滕,你是对的。我最终在 coredll.lib 上进行了转储,并找到了 CreateSemaphoreW 调用并对其进行了更新。感谢您的所有帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多