【C++】ライブラリとリンク
ライブラリ
静的リンク
これに対応したライブラリが静的リンクライブラリ
動的リンク
これに対応したライブラリが動的リンクライブラリ(共有ライブラリ)
静的リンクと動的リンクの違いの確認
静的リンクライブラリの作成
MyStatic.h
#pragma one
class MyStatic
{
public:
int Calc(int a, int b);
}
MyStatic.cpp
#include "MyStatic.h"
int MyStatic::Calc(int a, intb)
{
return a + b;
}
動的リンクライブラリの作成
MyDynamic.h
#pragma one
#ifdef MYDYNAMICLIB_EXPORTS
#define MYDYNAMICLIB_API __declspec(dllexport)
#else
#define MYDYNAMICLIB_API __declspec(dllimport)
#endif
class MyDynamic
{
public:
MYDYNAMICLIB_API int Calc(int a, int b);
}
MyDynamic.cpp
#include "MyDynamic.h"
int MyDynamic::Calc(int a, int b)
{
return a + b;
}
実行ファイルの作成
#include <iostream>
#include <MyDynamic.h>
#include <MyStatic.h>
int main()
{
auto myDynamic = std::make_unique<MyDynamic>();
auto myDynamicRet = myDynamic->Calc(5, 10);
std::cout << myDynamicRet <<std::endl;
auto myStatic = std::make_unique<MyStatic>();
auto myStaticcRet = myStatic->Calc(1, 20);
std::cout << myStaticRet <<std::endl;
}