• ベストアンサー

extern "C"が原因?

今、自分のソースから既存の(sample.h)をインクルードし、 そのヘッダファイルの変数を用いようと思っているのですが、 「error LNK2001: 外部シンボル "ID_WMP" は未解決です。」というエラーが出ます。 (sample.h) extern "C" const GID ID_WMP 自分のソース(my.h)で、このID_WMPを使用すると、上記のエラーがでます。 困っています。よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.1

リンク時に「外部参照可能でID_WMPの実体を定義しているオブジェクトかライブラリ」を指定してリンクしましょう。 extern "C" const GID ID_WMP の意味は「どこかにID_WMPってのを定義しているオブジェクトかライブラリがあるんで、リンクする時に解決してね」って事です。 なので、ID_WMPってのを定義しているオブジェクトかライブラリを一緒にリンクしてあげないと、エラーになってしまいます。

その他の回答 (1)

  • t_nojiri
  • ベストアンサー率28% (595/2071)
回答No.2

>既存の(sample.h)を リンクしてるプログラムなり、makefileとかプロジェクトが判るのなら別ですが、そのまま別のプログラムのヘッダだけ持ってきたら駄目ですよ。 リンクするオブジェクトなりアーカイブなり判ってないなら、リンクエラー出ても仕方無いです。 自分で、オート変数書いた方が簡単な気も。

関連するQ&A

専門家に質問してみよう