静的リンクライブラリと動的リンクライブラリ
994 ワード
静的リンクライブラリlibは、実行可能ファイルを生成するときにexeにすべて埋め込まれ、その明示的な呼び出し:#pragma comment(lib,“XXX.lib”)
ターゲットエンジニアリングのリンクをコンパイルする前にlibファイルとヘッダファイルをエンジニアリングディレクトリにコピーする必要があります.実行時にlibファイルは必要ありません.
動的リンクライブラリは、プログラムの実行中にdllファイルの関数を動的にロードして実行されます.したがってdllファイルはexeファイルと同時にパブリッシュされ、exeが実行される必要があります.
dllモジュールインスタンスソース:
ヘッダファイルadd.h
ソースファイルadd.cpp
dlモジュールインスタンスのソースコードを呼び出します.
ターゲットエンジニアリングのリンクをコンパイルする前にlibファイルとヘッダファイルをエンジニアリングディレクトリにコピーする必要があります.実行時にlibファイルは必要ありません.
動的リンクライブラリは、プログラムの実行中にdllファイルの関数を動的にロードして実行されます.したがってdllファイルはexeファイルと同時にパブリッシュされ、exeが実行される必要があります.
dllモジュールインスタンスソース:
ヘッダファイルadd.h
extern "C" _declspec(dllexport)int add(int,int);
ソースファイルadd.cpp
#include "add.h"
int add(int x,int y)
{
return x+y;
}
dlモジュールインスタンスのソースコードを呼び出します.
#include <iostream>
#include <Windows.h>
typedef int(*pFun)(int,int);
using namespace std;
int main()
{
HINSTANCE hDll;
hDll = LoadLibrary("dll_test.dll");
pFun p=(pFun)GetProcAddress(hDll,"add");
cout<<p(1,2)<<endl;
system("pause");
return 0;
}