在Visual Studio 2013 Express中为mciSendString链接到winmm.dll

时间:2014-01-24 18:26:49

标签: visual-studio visual-c++ linker visual-studio-2013

我试图在visual studio express 2013(Visual C ++)中使用mciSendString,但我一直收到错误

Error   1   error C3861: 'mciSendStringA': identifier not found

我认为这是因为我没有链接到正确的dll,但我在网上或msdn上找不到有关如何链接到dll的任何细节。似乎很奇怪,没有更明显的文件记录。有人能告诉我如何链接到DLL吗?

编辑:

以下是我尝试运行的代码:

#include <Windows.h>
#include <iostream>
#include <mmsystem.h>

extern char command1[] = "open C:\\boing.mp3 type MPEGVideo alias 0";
extern char command2[] = "play 0 from 0";

int main()
{
    mciSendStringA(command1, NULL, 0, 0);
    mciSendStringA(command2, NULL, 0, 0);
}

2 个答案:

答案 0 :(得分:3)

要使mciSendString()生效,您需要链接到winmm.lib

只需将winmm.lib添加到Project Properties > Linker > Input > Additional Dependencies即可。

答案 1 :(得分:0)

查看mmsystem.h(诚然来自V7.1A Windows SDK,这是我安装的最新版本),我可以看到其中有一个#ifdef _WIN32块。如果未定义_WIN32,则不会声明mciSendStringA。而是声明mciSendString

检查项目选项并确保定义了WIN32_WIN32。我猜你是从一个控制台项目开始的,而不是一个Windows应用程序项目,并且至少有一个没有定义。