はじめに

CのコードとC++のコードが混在する環境では、C++のコードからCのコードを呼び出すことが必要になる場合があります。
このページでは、CのコードからC++のコードを呼び出す方法について説明します。

尚、逆にCのコードからC++のコードを読み出す方法については「CのコードからC++のコードを読み出す」のページをご参照ください。

呼び出される側のCのコード

C++のコードから呼び出されるCのコード側では、特になにもしなくて問題ないです。

Cのコード
#include <stdio.h>

int add(int a,int b)
{
    return(a+b);
}

呼び出す側のC++のコード

呼び出す側のC++のコードについては、Cのコード側で宣言された関数を「extern "C"」宣言することにより、呼び出すことが可能になります。

C++のコード
#include <stdio.h>

extern "C" int add(int a,int b);

class Person
{
    public: virtual void ask();
};

class GoodPerson : public Person
{
    public: void ask()
    {
        puts("そんなことしちゃ駄目だよ!");
    }
};

class EvilPerson : public Person
{
    public: void ask()
    {
        puts("やっちまえよ、へっへっへ…");
    }
};

void main()
{
    printf("result=%d\n",add(12,34));
}


あなたの探し物は見つかりましたか?
まさにこれだ
参考になった
ちょっと違う
これじゃない

何かメッセージがあればお願いします

このメッセージを非公開にする

ご注意

・頂いたメッセージは管理者のチェックの後、公開されます。
・メッセージの公開を希望されない場合には、「このメッセージを非公開にする」にチェックを入れてください。
・管理者が不適切と判断したメッセージは公開しませんので、予めご了承ください。


まだ評価がありません

表示できるメッセージはありません。