Making DLL's in Microsoft Visual C++ 6.0



Example 1 : Working from the Command Line

Now we make a one-line DLL. Here's the source:

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

Save this to file myfun.cpp and compile it from the DOS prompt with:

cl -LD myfun.cpp

The -LD switch says to generate a DLL. Next we make an executable, which calls the DLL. Here's the source:

#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";
}

Save this to the file main.cpp. Then compile and link from the command prompt with:

cl main.cpp /link myfun.lib

Execute it from the command line (just type 'main').

Example 2 : Using VC++ IDE to Create DLL

In Microsoft Visual C++ 6.0, you can create a DLL by selecting either the Win32 Dynamic-Link Library project type or the MFC AppWizard (dll) project type.

The following code is an example of a DLL that was created in Visual C++ by using the Win32 Dynamic-Link Library project type.

// 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
dll_examples.htm
Advertisements