在Visual Studio 2008中使用mmsystem.h

时间:2011-03-31 20:09:15

标签: c++ winapi 64-bit

我正在尝试创建一个设置全局钩子的64位dll。正如我所读到的那样无法用CLR完成(我甚至尝试过),所以我创建了一个Win32项目,我将为64位平台构建它。 它会以这种方式工作吗?

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

  

1> dll64.obj:错误LNK2019:函数_InstallHook1 @ 0中引用的未解析外部符号__imp__timeSetEvent @ 20   1> dll64.obj:错误LNK2019:未解析的外部符号__imp__timeBeginPeriod @ 4在函数_InstallHook1 @ 0

中引用

如何解决这个问题?

1 个答案:

答案 0 :(得分:6)

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

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