会社とかでするときとかさあ
VisualStudioないんですけど…
なんで買っといてくんないの(´・ω・`)
Community入れたくなるんですけど…
プロジェクトを作成する
共用ライブラリとして作成
ソースディレクトリと空のソースファイルを用意
実装
/* * sample01.cpp * * Created on: 2017/08/06 * Author: hogehoge */ extern "C" { __declspec(dllexport) /** * 加算 */ int add(int a, int b) { return a + b; } }; extern "C" { __declspec(dllexport) /** * 減算 */ int sub(int a, int b) { return a - b; } };
プロパティのリンカーフラグを追加
※「-static」を追加
ライブラリ名などを設定
※インポートライブラリ名を「libsample01.lib」を作成する
※defファイルとして「sample01.def」を作成する
ビルドを行う
Debugディレクトリ配下に作成されていることを確認
静的インポートで使用する
プロジェクトを作成する
プロパティのリンカーのその他のオブジェクトに「libsample01.lib」を追加
※リンカーフラグに「-static」も忘れずに追加
実装
//============================================================================ // Name : sample02.cpp // Author : // Version : // Copyright : Your copyright notice // Description : Hello World in C++, Ansi-style //============================================================================ #include <iostream> using namespace std; // エクスポート関数定義 extern "C" __declspec(dllexport) int add(int a, int b); extern "C" __declspec(dllexport) int sub(int a, int b); int main() { cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!! cout << add(100, 40) << endl; cout << sub(100, 40) << endl; return 0; }
※ヘッダーファイル用意するのめんどかったので今回は直書きです。
ビルド
※「libsample01.dll」を配置しておくこと
実行
!!!Hello World!!! 140 60
できた感じです。