c++ - 在 Visual Studio 2008 中使用 mmsystem.h

标签 c++ winapi 64-bit

我正在尝试创建一个设置全局 Hook 的 64 位 dll。正如我所读,它不能用 CLR 完成(我什至尝试过),所以我创建了一个 Win32 项目,我将为 64 位平台构建它。 它会这样工作吗?

我的主要问题是如何在这个项目中使用mmsystem.h。我需要使用多媒体计时器,当我使用 timeBeginPeriod 或 timeSetEvent 时出现链接器错误:

1>dll64.obj : error LNK2019: unresolved external symbol __imp__timeSetEvent@20 referenced in function _InstallHook1@0
1>dll64.obj : error LNK2019: unresolved external symbol __imp__timeBeginPeriod@4 referenced in function _InstallHook1@0

如何解决这个问题?

最佳答案

您必须链接 winmm.lib,它不是链接的默认库之一。一种简单的方法是将链接指令放在您的源代码中:

#include <windows.h>
#include <mmsystem.h>
#pragma comment(lib, "winmm.lib")

关于c++ - 在 Visual Studio 2008 中使用 mmsystem.h,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5505706/

相关文章:

c++ - 指针错误 - "using uninitialized value"即使我认为它已初始化?

c - 调用我在 Win7-x64 上创建的 Detoured 函数后应用程序崩溃

c++ - 如何在 x64 C++ 应用程序中保留底部 4GB VM

python - 如何在 Mac OS X 上强制使用 64 位 python?

c++ - 调用重写的方法而不是直接的父亲

c++ - 不懂learnopengl.com中Diffuse-irradiance教程中的captureViews

c++ - 以编程方式在Windows上创建文件夹快捷方式

winapi - 如何判断字体是否是符号字体?

c++ - 数据流编程 - 模式和框架

从 GETTEXT 获取的 C++ 变量作为 mysql_query 变量