ページ 11

外部参照

Posted: 2010年3月13日(土) 10:36
by くりあ
よろしくお願いします。VC++を使っています。
AquesTalk2を使ってみたいと思い、プログラムを作ってみたのですが、

error LNK2019: 未解決の外部シンボル _AquesTalk2Da_PlaySync@12 が関数 _main で参照されました。
error LNK1120: 外部参照 1 が未解決です。

と、エラーが出てしまいました。
どうすればいいのでしょう。
ライブラリファイルや、インクルードファイル関係の問題かなと思ったのですが、
オプションで追加したつもりなのですが……

それとも全然見当違いの問題なのでしょうか。
どうすればいいのでしょうか?

お願いします。

Re:外部参照

Posted: 2010年3月13日(土) 12:07
by Poco
ライブラリ関連の設定を見直してください。
・ライブラリ自体をリンク対象にしているか?
・ライブラリの検索パスに当該ライブラリがおかれているディレクトリが含まれているか?

Re:外部参照

Posted: 2010年3月14日(日) 01:38
by くりあ
ぽこさん、回答ありがとうございます。
とりああえず、DXライブラリと同じようにすればいいのかと思い、
同じようにやってみたのですが、他にどうすればいいんでしょうか?

ライブラリ自体をリンクの対象するというのはどうすれば?

ライブラリの検索パスのはちゃんと設定してあるはずです。
何回もやり直してみたのですが、うまくいきません。
何か勘違いをしているのか、別の理由だと思います。

Re:外部参照

Posted: 2010年3月14日(日) 16:57
by tuelon
#pragma comment( lib, "AquesTalk2Da.lib" )
をメインcppの最初に書いて、AquesTalk2Da.dllをプロジェクトがあるフォルダにコピーすれば
たぶんできるかと・・・

Re:外部参照

Posted: 2010年3月14日(日) 17:28
by くりあ
tuelonさん、回答ありがとうございます。
やってみたのですが、エラーは相変わらずです。
#pragma comment( lib, "AquesTalk2Da.lib" )
これって、ライブラリを使う時は必ず必要なんですか?
DXライブラリの時は使わなくてもいいですよね?

Re:外部参照

Posted: 2010年3月14日(日) 17:56
by tuelon
dll形式で配布されているライブラリを使うときはいると思うのですが・・・


ちなみに
こっちの環境では、このコードでちゃんと再生されます。(Aquestalk2じゃなくて旧バージョンですが・・)


#include"AquesTalkDa.h"
#pragma comment(lib, "AquesTalkDa.lib")

int main(){
AquesTalkDa_PlaySync("あ");
return 0;
}

Re:外部参照

Posted: 2010年3月14日(日) 18:14
by softya
ところで、"AquesTalk2Da.lib"はちゃんと見えるところにあるのでしょうか?
dllだけだとエラーになりますよ。
※ LoadLibrary()で自分でDllのロードを管理すれば別ですが。

参考↓
http://web.kyoto-inet.or.jp/people/ysskondo/chap11.html
http://web.kyoto-inet.or.jp/people/ysskondo/chap12.html

Re:外部参照

Posted: 2010年3月14日(日) 18:26
by くりあ
出来ました!!ありがとうございます!!
#pragma comment( lib, "AquesTalk2Da.lib" )
これがなかったのが原因でした。
さっきは、これを本当に一番最初に書いたのがエラーの原因のようです。
インクルードファイルの下に書かないとだめなんですね。すいません。
ライブラリとかもっと勉強しなければいけないですね……
本当にありがとうございました。

softyaさん、参考ありがとうございます。
次はこんなことにならないように勉強します。