現在A/D変換ボードの制御をしようとしています。
ボードのインストールも行なったのですが、以下のエラーが出て困っています。
外部シンボル 'AdOpen' が未解決(C:\PROGRAM FILES\BORLAND\CBUILDER5\PROJECTS\MAG\MAIN.OBJ が参照)と出てしまいます。
mainはシンプルなのですが...
void __fastcall TForm1::OpenDevClick(TObject*Sender)
{
device_handle = AdOpen("FBIAD1");
if(device_handle == INVALID_HANDLE_VALUE){
ShowMessage("Err : デバイスのオープンに失敗");
return;
}
}
そもそもこのエラーはなぜ出るのですか?
No.2ベストアンサー
- 回答日時:
> [リンカ エラー]'FBIAD.LIB' contains invalid OMF record, type 0x21 (possibly COFF)
>
> さっぱりわかりません(^^;)
コンパイルしたもの(.objなど)には、決められたフォーマットが幾つかあって、
それが期待したのと違う(OMF というフォーマットで読もうとしてるんだけど、
タイプが違う、もしかしたら COFF というフォーマットかも)ということみたい。
多分 VC++ だったらいけると思う。
もしくは、変換ツール(coff2omf みたいな)が BC++ についてるとか。
A/D変換ボード用のライブラリは、DLL で提供されているものなんでしょうか?
であれば、implib で、インポートライブラリを DLL から作り直しましょう。
ありがとうございました!無事解決しました(^^)
何とかこれで卒研が先に進めそうです。この調子だと前途多難ですが(笑)
今までDLLとLIBとかの関係が分からなかったのですが、何となく分かった気がします。
Windows\SYSTEMにインストールされていたFbiAd.dllからimplibでFbiAd.libを作り、リンクさせた所、バッチリ動きました。
しかし、普通はVC++でDLLを提供するものなのですか?Borlandはマイナーなのかなぁ...
No.3
- 回答日時:
> Windows\SYSTEMにインストールされていたFbiAd.dllからimplibでFbiAd.libを作り、リンクさせた所、バッチリ動きました。
> しかし、普通はVC++でDLLを提供するものなのですか?Borlandはマイナーなのかなぁ...
解決したようで良かった。
提供の形態に、どれが普通なのか、は一概に言えませんが、形態を決める一番大きい
理由は、「提供者が、どの開発環境を持っているか?」だと思います。
開発用のライブラリであれば、利用者が広がれば、その要求に応えるために、両方の
ライブラリが提供されているケースはあります(例えば、lzh 展開用の UNLHA なんか)。
また、バイナリだと、どうしてもそういうケースはありますから、ソースで提供され
ている、とかね。
かくいう私も、BC++ は(雑誌の付録のCDなんかで)持ってはいるものの、使ったことが
ありません。必要があれば、使うつもりはあるんですけどね。
No.1
- 回答日時:
原因として、考えられることを二つほど。
・AdOpen()を持っているライブラリをリンクのときに指定していない
質問の書き方が、ちょっとプログラムを知っている人のようなので、こういうミスは
無いだろうな、と想像します。本命は、こちら。
・AdOpen() は C の関数であり、そのプロトタイプ宣言が適切にされていない
細かく分類すると、
・提供されているインクルードファイルをインクルードしていない
・提供されているインクルードファイルが C++ で使うことを想定されて書かれていない
・そもそもプロトタイプ宣言が書いてあるインクルードファイルが無くて、自分でも宣言していない
の三種類があります。
C++ は、関数のオーバーロード(引数の型や個数が違えば、同名の関数でも異なった
実装ができる)の仕組みを持っているので、いわゆる C の関数とは区別されます。
AdOpen() の引数は、(私には)想像するしかないんですが、例えば、以下のような
プロトタイプ宣言が、(自分で書くかどうかは別にして)どこかに必要です。
extern "C" int AdOpen(const char*);
この回答への補足
回答ありがとうございます。
リンクのとき指定というのは、どういうことですか?プロジェクトに.libを追加してこの問題はなんとか解決できましたが、またエラーが出てしまいしました。
[リンカ エラー]'FBIAD.LIB' contains invalid OMF record, type 0x21 (possibly COFF)
さっぱりわかりません(^^;)
今は学生です。卒業研究でA/Dコンバータを使わないといけないのですが、初期化の段階で詰まってしまっています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) pythonのエラーについて 2 2022/08/17 17:17
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- その他(プログラミング・Web制作) pythonのこのエラーがわかりません 3 2022/11/16 14:54
- C言語・C++・C# 未解決の外部シンボル _printfが関数_mainで参照されました 1 2022/09/18 15:28
- その他(プログラミング・Web制作) 十進BASICでの再帰についての質問です。 2 2022/11/18 09:17
- C言語・C++・C# C++のcase文の書き方 4 2023/02/24 20:50
- C言語・C++・C# const char** p;のとき、free(p)でC4090エラーとなるのはなぜですか 3 2023/03/31 16:28
- その他(プログラミング・Web制作) python flask から fastapiへの移行時のエラー対処 1 2023/02/05 12:26
このQ&Aを見た人はこんなQ&Aも見ています
-
あなたの「必」の書き順を教えてください
ふだん、どういう書き順で「必」を書いていますか? みなさんの色んな書き順を知りたいです。 画像のA~Eを使って教えてください。
-
家・車以外で、人生で一番奮発した買い物
どんなものにお金をかけるかは人それぞれの価値観ですが、 誰もが一度は清水の舞台から飛び降りる覚悟で、ちょっと贅沢な買い物をしたことがあるはず。
-
【お題】ヒーローの謝罪会見
【大喜利】 怪人の侵略に気づくのが遅れ、それを防げなかった戦隊ヒーローの謝罪会見で出た発言
-
プリン+醤油=ウニみたいな組み合わせメニューを教えて!
プリンと醤油を一緒に食べると「ウニ」の味がする! というような意外な組み合わせから、新しい味になる食べ物って色々ありますよね。 あなたがこれまでに試した「組み合わせメニュー」を教えてください。
-
14歳の自分に衝撃の事実を告げてください
タイムマシンで14歳の自分のところに現れた未来のあなた。 衝撃的な事実を告げて自分に驚かせるとしたら何を告げますか?
-
C++Builder → Visual C++ 移植について
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~12/2】 国民的アニメ『サザエさん』が打ち切りになった理由を教えてください
- ・ちょっと先の未来クイズ第5問
- ・【お題】ヒーローの謝罪会見
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
LTspice モデル作成について
-
スタティックライブラリ関係の...
-
「MFCを使用しない」から「MFC...
-
error LNK2019: 未解決の外部シ...
-
PGPLOTでの文字描画
-
Visual C++ POSIX Thread
-
visual studio community2017 O...
-
VC++でビルド時の、リンク警告 ...
-
'stdafx.h'のエラーに関して
-
Visual Studio 2022の『#define...
-
VB6/SPREAD6.0 について
-
fatal error LNK1104: ファイル...
-
【VS2008 C++】2つのプロジェ...
-
C++言語でのライブラリファイル...
-
BCCでコンパイルする際に静的リ...
-
VC.NET(C#)のクラスライブラリ...
-
C#でUSBカメラを使うには?
-
python エラー
-
アプリケーションのDLLファイル...
-
エクセルのエラーメッセージ「4...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
スタティックライブラリ関係の...
-
'stdafx.h'のエラーに関して
-
静的/動的リンクライブラリにつ...
-
visual studio community2017 O...
-
【VS2008 C++】2つのプロジェ...
-
C言語のPathFileExistsについて
-
fatal error LNK1104: ファイル...
-
OpenSSLの共有ライブラリ(libcr...
-
C++Builder リンカエラーとは?
-
#include <winreg.h>をインクル...
-
lvwReport/エラー/プロジェクト...
-
VC++6.0からVC++.NET2005へ移植
-
#pragma commentの相対パス指定
-
スタティックライブラリの使い方
-
mac(osX)で、Javaはどこにイン...
-
タイプライブラリのレジストリ...
-
BorlandC++Builder5.0でリンカ...
-
error LNK2019: 未解決の外部シ...
-
C++によるPostgreSQLの接続
-
VCのincludeについて
おすすめ情報