Dll-vcpp-example

提供:Dev Guides
移動先:案内検索

Microsoft Visual C ++ 6.0でDLLを作成する

例1:コマンドラインからの作業

次に、1行のDLLを作成します。 ここに源があります:

extern "C" __declspec(dllexport) void myfun(int * a){*a = - *a; }

これをファイルmyfun.cppに保存し、DOSプロンプトから次のようにコンパイルします。

cl -LD myfun.cpp

-LDスイッチは、DLLの生成を指示します。 次に、DLLを呼び出す実行可能ファイルを作成します。 ここに源があります:

#include iostream.h

extern C __declspec(dllimport) void myfun ( int * a);

void main(void)
{
   int a = 6;
   int b = a;
   myfun(&b);

   cout << '-' << a << " is " << b << "! \n";
}

これをファイルmain.cppに保存します。 次に、コマンドプロンプトからコンパイルしてリンクします。

cl main.cpp/link myfun.lib

コマンドラインから実行します( 'main’と入力するだけです)。

例2:VC ++ IDEを使用してDLLを作成する

Microsoft Visual C ++ 6.0では、Win32 Dynamic-Link LibraryプロジェクトタイプまたはMFC AppWizard(dll)プロジェクトタイプのいずれかを選択してDLLを作成できます。

次のコードは、Win32 Dynamic-Link Libraryプロジェクトタイプを使用してVisual C ++で作成されたDLLの例です。

//SampleDLL.cpp

#include "stdafx.h"
#define EXPORTING_DLL
#include "sampleDLL.h"

BOOL APIENTRY DllMain(HANDLE hModule, DWORD  ul_reason_for_call, LPVOID lpReserved)
{
   return TRUE;
}

void HelloWorld()
{
   MessageBox( NULL, TEXT("Hello World"), TEXT("In a DLL"), MB_OK);
}
//File: SampleDLL.h

#ifndef INDLL_H

   #define INDLL_H

   #ifdef EXPORTING_DLL
      extern __declspec(dllexport) void HelloWorld();
   #else
      extern __declspec(dllimport) void HelloWorld();
   #endif

#endif