時には、ユーザーがファイルの動的ライブラリファイルとDLLインタフェース関数名を取得することができます。私たちはこのDLLライブラリを呼び出すと、私たちは、いつものように、.H、.LIBによりアルゴリズムのDLLライブラリを呼び出す、と.dllこの3つのファイルにすることはできません。
ここでは唯一のメソッド呼び出しDLL関数インタフェースや.dllファイルが導入されました。
ところで、DLLの作成プロセスについて話す、見て:
作成--->プロジェクト--->のWin32 - > Win32の制御アプリケーション---> DLL(D)空のプロジェクト
ヘッダを追加WinDll.h
1 #ifndefのLIB_H 2 の#define LIB_H 3 のextern " C " INT __declspec(DLLEXPORT)は(追加のint X、int型のy)を、 4 #endifの
注: 3 にextern 「C 」 int型 __declspec(のdllexport)(追加のint X、int型のy)は、 ダイナミックリンクライブラリを断言、これは非常に重要です。
WinDll.cppソースファイルを追加します。
1つの#include " Windll.h " 2 INTの追加(int型のx、int型のY) 3 { 4 リターン X + Y。 5 }
コンパイル後、WinDll.dllファイルを生成します。これまでのところ、.dllファイルが作成されます。
ここでは、このDLLファイルを呼び出す方法です。
新しいプロジェクトを作成します
ソースファイルを追加して作成
1の#include <stdio.hの> 2の#include <STDLIB.H> 3の#include <はWindows.h> 4 5のtypedef int型(* lpAddFun)(INT、INT )。 6 7 INTメイン(int型 ARGC、チャー ** ARGV) 8 { 9 HINSTANCE hDll。 10 lpAddFun addFun。 11 hDll = LoadLibraryの(TEXT(" .. \\ WinDll.dll " )); 12 であれば(!hDll) 13 { 14 のprintf(" DLLをロードできません。" ); 15 } 16 他の 17 { 18 addFun =(lpAddFun)のGetProcAddress(hDll、" 追加" )。 19 であれば(addFun!= NULL) 20 { 21 のprintf(" 結果=%d個の\ n "、addFun(1、2 ))。 22 } 23 にFreeLibrary(hDll)。 24 } 25 システム(" 一時停止" )。 26 }
注: = LoadLibraryの((TEXT HDLL 「.. \\ WinDll.dll 」)); 負荷のdllファイルの下で、DLLのストレージ・パスのパスは、つまり、我々はdllファイルが現在のプロジェクトディレクトリにコピーされる前に、これを生成することができますA。
コンパイルして実行します。
ありがとうございます。