趣味でプログラミングを行ってますCerapodaと申します。
Builderを使って1つのFormと1つのCpp,hファイルを使ったプログラミングならある程度のところまで出来ると思っているのですが
以前違うプロジェクトで作った関数を新たなプロジェクトで使おうとして
いちいちコピー&ペーストするのも大変なので
ひとつのユニット&ヘッダーファイルとしてインクルードして使いたいなと思いました。
そこで
http://www.osakac.ac.jp/labs/matsuura/japanese/p …
このページを参考にしてUnit1とUni2を作成し
Unit2に
double Analysis::Function(double val)
{
return(1.0-val);
}
の関数を追記。
Unit1のcppに
C.Function(0.5);
と書き加えたのですが
[リンカ エラー] 外部シンボル '_C' が未解決…
とエラーが表示されてしまいます。
どこに問題があるのか教えていただければ幸いです。
情報が足りない場合は、補足しますのでよろしくお願いします。
また、このような作業で参考になるサイト,URL等ありましたら教えていただけると幸いです。
よろしくお願いします。
No.1
- 回答日時:
Unit2自体をUnit1の先頭でIncludeしないといけません.
この回答への補足
回答ありがとうございます。
仰るとおりで
http://www.osakac.ac.jp/labs/matsuura/japanese/p …
の始めに書いてある通り
「ファイル->ユニットヘッダーファイルの追加」を行っています。
Uni1.cppにも#include "Unit2.h"と表示されています。
それでも、エラーが表示されてしまうんです。
どうしてなんでしょう?
No.2ベストアンサー
- 回答日時:
参考にしたサイトのソースをそのまま流用しているという前提ですが、それだと、そもそもAnalysis Cが定義されてませんね。
不備のあるソースですよそれ。とりあえず、Unit2.cppの末尾にでも
Analysis C;
の一行を加えてみてください。
これでダメならあなたのお書きになったソースを全部提示してもらわないと判断がつきません。
といいますか、質問の際は最初からソースを提示してください。
文字制限に引っかかるときは、問題が発生する最小限のソースを抽出して。
回答者が他所のサイトをわざわざ開かなくても回答できるように。
この回答への補足
【 Unit1.h 】
ここは一切追記していません。
【 Unit1.cpp 】
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include "Unit2.h"
<中略>
//--------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
C.Function(0.5);
}
//---------------------------------------------------------
【 Unit2.h 】
#ifndef Unit2H
#define Unit2H
#include <stdio.h>
#include <fstream.h>
#include <math.h>
#include <vector>
using namespace std;
class Analysis
{
public:
Analysis();
~Analysis();
double Function(double val);
};
//-----------------------------------------------------------
extern PACKAGE Analysis C;
//-----------------------------------------------------------
#endif
【 Unit2.cpp 】
//------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit2.h"
//------------------------------------------------------------
#pragma package(smart_init)
//------------------------------------------------------------
Analysis::Analysis()
{
}
//------------------------------------------------------------
Analysis::~Analysis()
{
}
//------------------------------------------------------------
double Analysis::Function(double val)
{
return(1.0-val);
}
//------------------------------------------------------------
回答ありがとうございます。
補足要求あればソースを開示しようと思っていたのですが
テストで適当に作っただけの短いプログラムですので
始めから開示しておけばよかったですね。申し訳ないです。
ソースを補足させていただきました。
Unit2.hの末尾に
extern PACKAGE Analysis C;
とあるのですが出来ませんでした…と思っていたのですが
回答ではUnit2.cppの末尾にAnalysis C;を追記であることに
今気づいて、試してみると成功しました。
回答ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C++のcinの動作 5 2023/02/26 00:13
- Visual Basic(VBA) VBAでfunctionを利用しようとしたときに「引数は省略できません」というエラーが出ます 1 2022/10/15 16:30
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 malloc関数を使ってください!お願いします! 最 1 2022/07/21 09:28
- C言語・C++・C# C言語 3 2022/10/04 15:07
- Visual Basic(VBA) マクロで最終行を取得したい 4 2023/05/28 12:14
- 画像編集・動画編集・音楽編集 【急】【Zbrush】3DCG初心者です。ノートPCでのZbrush動作環境につきまして 1 2023/08/19 17:38
- 画像編集・動画編集・音楽編集 AfterEffectでのシャターの挙動がおかしい 1 2023/05/07 00:38
- C言語・C++・C# C++のcase文の書き方 4 2023/02/24 20:50
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
外部依存関係について
-
コンパイルエラー
-
C++の関数をfortranから呼びた...
-
C言語ソースのオラクルコンパイ...
-
VC2005のDLLを6.0で呼び出すには
-
リンクエラー
-
外部シンボルの未解決のエラー
-
python エラー
-
エクセルのエラーメッセージ「4...
-
<unistd.h>をVisualStudioでつ...
-
アプリケーションのDLLファイル...
-
VBAを何回も作り直して、容量が...
-
math.hに含まれる関数が使えない
-
<math.h>があるのにsqrtが・...
-
DLL参照時に指定されたモジュー...
-
実行後にコンパイルに失敗しま...
-
コンパイルできません。
-
” OS ビルド ” の意味が分か...
-
sys/time.hのインクルードがで...
-
[c++] <pthread.h>がinclude で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
外部依存関係について
-
LNK2019: 外部シンボル どのよ...
-
C++でのエラー LNK2001
-
外部シンボルの未解決のエラー
-
error LNK2001について
-
外部シンボル" ~~"は未解決で...
-
コンパイルエラー
-
OpenCVでの画像サイズ取得につ...
-
LNK2019: 未解決の外部シンボル...
-
エラー 未解決の外部シンボル
-
LNK2001(Pro*c)
-
実行ファイルの容量を減らした...
-
popen・pcloseについて
-
PathIsDirectoryを使って
-
DB2付きのC言語がコンパイルで...
-
C++ の LNK2001エラー
-
CLapack C++
-
外部シンボルについて
-
未解決の外部シンボル
-
VC++ 6.0へのサンプルプログラ...
おすすめ情報