質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Visual C++

Microsoft Visual C++はWindowsのCとC++の統合開発環境(IDE)であり、コンパイラやデバッガを含んでいます。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Q&A

解決済

1回答

6851閲覧

VisualStudioCommunity2015での分割コンパイルと結合について

watarusugimoto

総合スコア47

Visual C++

Microsoft Visual C++はWindowsのCとC++の統合開発環境(IDE)であり、コンパイラやデバッガを含んでいます。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

0グッド

0クリップ

投稿2016/11/13 10:21

###分割されたC++のファイルを結合してビルドしたい
VisualStudioCommunity2015を使っているのですが、使い方が良くわかっていません。
以下のソースコードをビルドしたいのですが、やり方が分かりません。

VisualStudioの使い方の乗っているサイトがあれば教えて下さい。
また、お手数でなければ以下のソースをVisualStudio2015でビルドするにはどうしたらいいのか、教えて頂ければと思います。

###ソースコード

interface.h

C++

1// IChap4_1インターフェース 2interface IChap4_1 3{ 4 virtual void FuncA(void) = 0; 5}; 6 7// IChap4_2インターフェース 8interface IChap4_2 9{ 10 virtual void FuncB(void) = 0; 11}; 12 13// インターフェース作成関数 14extern void CreateInstance(IChap4_1 **); 15extern void CreateInstance(IChap4_2 **); 16 17// インターフェース開放関数 18extern void Release(IChap4_1 *); 19extern void Release(IChap4_2 *);

component.cpp

C++

1#include <objbase.h> 2#include <iostream.h> 3#include "interface.h" 4 5/////////////////////////////////////// 6// Chap4クラス 7class Chap4 : public IChap4_1, public IChap4_2 8{ 9 // Chap4_1インターフェース 10 virtual void FuncA(void); 11 12 // Chap4_2インターフェース 13 virtual void FuncB(void); 14}; 15 16void Chap4::FuncA(void) 17{ 18 cout << "Chap4::FuncAが呼ばれたよ~" << endl; 19} 20 21void Chap4::FuncB(void) 22{ 23 cout << "Chap4::FuncBが呼ばれたよ~" << endl; 24} 25 26/////////////////////////////////////// 27// インターフェース作成関数 28extern void CreateInstance(IChap4_1 **pIFace) 29{ 30 Chap4 *pChap4 = new Chap4; 31 *pIFace = (IChap4_1 *)pChap4; 32 33 cout << "IChap4_1がCreateInstanceされたよ~" << endl; 34} 35 36extern void CreateInstance(IChap4_2 **pIFace) 37{ 38 Chap4 *pChap4 = new Chap4; 39 *pIFace = (IChap4_2 *)pChap4; 40 41 cout << "IChap4_2がCreateInstanceされたよ~" << endl; 42} 43 44/////////////////////////////////////// 45// インターフェース開放関数 46extern void Release(IChap4_1 *pIFace) 47{ 48 delete (Chap4 *)pIFace; 49 cout << "IChap4_1がReleaseされたました~。" << endl; 50} 51 52extern void Release(IChap4_2 *pIFace) 53{ 54 delete (Chap4 *)pIFace; 55 cout << "IChap4_2がReleaseされたました~。" << endl; 56}

client.cpp

C++

1#include <objbase.h> 2#include <iostream.h> 3#include "interface.h" 4 5int main(void) 6{ 7 // IChap4_1インターフェースを作成して、使用して、開放する。 8 IChap4_1 *pChap4_1; 9 CreateInstance(&pChap4_1); 10 pChap4_1->FuncA(); 11 Release(pChap4_1); 12 13 // IChap4_2インターフェースを・・・。 14 IChap4_2 *pChap4_2; 15 CreateInstance(&pChap4_2); 16 pChap4_2->FuncB(); 17 Release(pChap4_2); 18 19 return 0; 20}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ソースファイルがあるのであれば、プロジェクトを作成して、そのプロジェクトに追加してビルドでできますよ。
(ソースから判断して、Windowsのコンソールアプリケーションのプロジェクトを用意すれば)
詳しくはファイル新規作成プロジェクトと進み、Visual c++を選択するとWIN32 コンソールアプリケーションが選べます。下にプロジェクトの名前を入力してOKを押す。
すると新規のプロジェクトが作成されます。(途中’Win32 アプリケーション ウィザードへようこそ’と出るので次へ>を押すと、追加のオプションの所で空のプロジェクトにチエックして完了をクリック。
プロジェクトを選択して、既存の項目の追加`でソース及びヘッダーを指定。そしてビルドです。

投稿2016/11/13 10:26

編集2016/11/13 10:50
MasahikoHirata

総合スコア3747

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

watarusugimoto

2016/11/13 11:17

ヘッダーは分かるのですが、メインではない方のcppファイルはどこに追加すれば良いのでしょうか?
MasahikoHirata

2016/11/13 11:22

同じプロジェクトにメインと同様に追加します。
MasahikoHirata

2016/11/13 11:24

1つのプロジェクトに複数の.hppや.cppを登録できます。(ソースレベルでモジュール化できる)
MasahikoHirata

2016/11/13 11:32

`既存の項目の追加`で出来ませんか?
watarusugimoto

2016/11/13 12:32

リソースファイルではなくソースファイルに追加すればいいのでしょうか?
watarusugimoto

2016/11/13 12:54

ビルドできました。ありがとうございました。 #include <iostream>の部分が間違っていました。 ソースファイルに追加すればよいのですね。 リソースファイルはどのような場合に使うのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問