未解決のシンボル

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
zakky

未解決のシンボル

#1

投稿記事 by zakky » 6年前

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();
}

Bull
記事: 149
登録日時: 9年前

Re: 未解決のシンボル

#2

投稿記事 by Bull » 6年前

MIDIの取得についての続きですか?
でしたら新しいトピックを立てないで、返信にしていただけると話がつながりやすいです。

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

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

Bull
記事: 149
登録日時: 9年前

Re: 未解決のシンボル

#3

投稿記事 by Bull » 6年前

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

返信

“C言語何でも質問掲示板” へ戻る