サンプル集  >  VC  >  DLLの利用(動的リンク)
DLLの利用(動的リンク)
2011/01/27

VC++からDLLを動的リンクで利用します。

◆環境
OS Windows XP Professional Version 2002 Service Pack 3
VC Microsoft Visual C++ 2008 91179-136-7480673-60943

No.440 で作成したDLLを呼び出すようにします。

VCDLLCallTest2.cpp
 1: 
 2: 
 3: 
 4: 
 5: 
 6: 
 7: 
 8: 
 9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23: 
24: 
25: 
26: 
27: 
28: 
29: 
30: 
31: 
32: 
33: 
// VCDLLCallTest2.cpp : コンソール アプリケーションの
// エントリ ポイントを定義します。
//

#include "stdafx.h"
#include <windows.h>

typedef int ( *FUNC_MYADD )( int a, int b );

int _tmain( int argc, _TCHAR* argv[] )
{
    HMODULE dll = LoadLibrary( L"VCDLLTest.dll" );
    if ( dll == NULL )
    {
        printf( "LoadLibrary Error=%d\n", GetLastError() );
        return 1;
    }

    FUNC_MYADD func
    = ( FUNC_MYADD )GetProcAddress( dll, "myAdd" );
    if ( func == NULL )
    {
        printf( "GetProcAddress Error=%d\n", GetLastError() );
        return 2;
    }

    int ret = func( _wtoi( argv[1] ), _wtoi( argv[2] ) );
    printf( "ret=%d\n", ret );

    FreeLibrary( dll );

    return 0;
}

実行したところエラーが出ました。

> VCDLLCallTest2.exe 1 5
LoadLibrary Error=126

実行ファイル(exe)が置いてあるフォルダにVCDLLTest.dllを置いて再度実行します。

> VCDLLCallTest2.exe 1 5
ret=6

正しく動作しました。

▲ PageTop  ■ Home


Copyright (C) 2014 ymlib.com