vs2013は、動的ライブラリのdllファイルを呼び出します

時には、ユーザーがファイルの動的ライブラリファイルと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)(INTINT )。
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(12 ))。
22          }
 23          にFreeLibrary(hDll)。
24      }
 25      システム(" 一時停止" )。
26 }

注:  = LoadLibraryの((TEXT HDLL .. \\ WinDll.dll ));  負荷のdllファイルの下で、DLLのストレージ・パスのパスは、つまり、我々はdllファイルが現在のプロジェクトディレクトリにコピーされる前に、これを生成することができますA。

コンパイルして実行します。

 

ありがとうございます。

 

おすすめ

転載: www.cnblogs.com/lumao1122-Milolu/p/11672333.html