2015年7月18日土曜日

DLLファイルの利用

今回は,"SayHelloWorld"というプロジェクト名で作成します。

「新しいプロジェクト -> Visual C++ -> Win32 コンソール アプリケーション」を選択し,任意のプロジェクト名を入力し,次へ。「アプリケーションの選択 -> アプリケーションの種類」で,"コンソールアプリケーション"を選択して完了をクリック。

*.dllファイルの利用には4手順必要である。

  1. dllの呼び出し:LoadLibrary
  2. 関数の取得:GetProcAddress
  3. 関数の利用:
  4. dllの解放:FreeLibrary

前回作成した"HelloWorld_Dll.dll"を利用するプログラムを書く。まず,"HelloWorld_Dll.dll"をソースファイルと同じフォルダに置く,簡単のため。次に,以下の"SayHelloWorld.cpp"に以下のプログラムを書く。
#include "stdafx.h"
#include "windows.h"
#include 

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
 HINSTANCE hDLL;
 int(*func)(int);
 if ((hDLL = LoadLibrary(_T("HelloWorld_Dll.dll"))) == NULL)
 {
  cout << "LoadLibrary is failed." << endl;
 }
 else {
  if ((func = (int(*)(int))GetProcAddress(hDLL, "HelloWorld")) == NULL)  else
   func(1);
  FreeLibrary(hDLL);
 }

 return 0;
}

実行すると,右のような結果が返ってきます。

今回作成したプロジェクト⇒

次は,クラスを含んだdllファイルと引数の受け渡しなどをやってみようと思います。






参考にしたサイト
--

[インスタンスハンドル]について

ほとんど全く ゼロ からはじめる Windows Programming
http://hp.vector.co.jp/authors/VA029438/level4/about/HINSTANCE.html

http://miraiware.net/memo/cpp-hinstance.html

[LoadLibrary]について

HM-LAB
http://www.hm-lab.net/archives/269

近藤妥のC言語で始めるWindowsプログラミング
http://web.kyoto-inet.or.jp/people/ysskondo/chap12.html

0 件のコメント:

コメントを投稿