ページ 11

未解決のシンボル

Posted: 2017年11月01日(水) 21:34
by zakky
visualstudio2015で下記のプログラムをビルドしたところ、
重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態
エラー LNK2019 未解決の外部シンボル __imp_midiOutGetNumDevs が関数 wmain で参照されました。 MIDIIOTest-x64 C:\Users\nishigulab\Desktop\MIDIIOTest-x64\MIDIIOTest-x64\MIDIIOTest-x64.obj 1
というエラーが出ました。
これはどうしたら解決できますか。
使用しているコードはおーぷんMIDIぷろじぇくとというライブラリです。

コード:

#include <stdio.h>
#include <tchar.h>
#include <windows.h>
#include "..\MIDIIOLib1.1-x64\MIDIIO.h"

int _tmain() {

	/* MIDI出力デバイスの数を調べる */
		return midiOutGetNumDevs();
}

Re: 未解決のシンボル

Posted: 2017年11月02日(木) 08:19
by Bull
MIDIの取得についての続きですか?
でしたら新しいトピックを立てないで、返信にしていただけると話がつながりやすいです。

ライブラリ(MIDIIO.lib)を指定すればいいと思います。
プロジェクトのプロパティで[リンカー]->[入力]->[追加の依存ファイル]にMIDIIO.lib(Release)またはMIDIIOd.lib(Debug)を指定すればいいです。必要に応じて[リンカー]->[全般]->[追加のライブラリ ディレクトリ]を指定してください。
実行するときはDLL(MIDIIO.dll)も必要になるので、.exeと同じディレクトリに入れてください。

DLLを使用したくないときは、ソースファイル(MIDIIO.c)をプロジェクトに追加して、一緒にビルドすればいいみたいです。その場合 winmm.lib をリンクする必要があるみたいです。

Re: 未解決のシンボル

Posted: 2017年11月02日(木) 12:52
by Bull
あれ、すいません。プログラムをよく見てなかったです。
ライブラリを使用しないで、Windowsのマルチメディア関数を直接呼んでいるんですね。
であれば、winmm.libを一緒にリンクするだけでいいです。
デフォルトではwinmm.libはリンクされないようなので、追加の依存ファイルに書き込めばいいです。