DLL编写和使用

相信很多朋友都想使用DLL来编写程序,但是总是遇到很多问题,我这里就DLL的编写和使用写个文章

编写一个DLL:

VS新建一个WIN32控制台程序(选DLL、空项目)

建立头文件MyLib.h

<span style="font-size:12px;">#ifdef MYLIBAPI 
#else

#define MYLIBAPI extern "C" __declspec(dllimport)

#endif

MYLIBAPI int g_nResult;

MYLIBAPI int Add(int nLeft, int nRight);
</span>
代码说明:最重要的定义MYLIBAPI,在即将导入的变量和函数前加上这句明显是是DLL的导入函数或者变量。

建立源文件MyLib.cpp

<span style="font-size:12px;">#include "windows.h"

#define MYLIBAPI extern "C" __declspec(dllexport)

#include "MyLib.h"

int g_nResult;

int Add(int nLeft, int nRight)
{
	g_nResult = nLeft + nRight;
	return g_nResult;

}</span>
代码说明:函数的定义,此时点击生成解决方案,即可生成一个DLL

调用DLL

新建一个空的工程,引用MyLib.h头文件,添加“之前生成的Lib文件”

编写源文件:

<span style="font-size:12px;">#include "windows.h"
#include "strsafe.h"
#include "stdlib.h"
#include "MyLib.h"

int main()
{
	LoadLibrary("New_DLL.dll");
	int nLeft = 10;
	int nRight = 10;
	TCHAR sz[100];
	StringCchPrintf(sz, _countof(sz), TEXT("%d + %d = %d"), nLeft, nRight, Add(nLeft, nRight));
	
	MessageBox(NULL, sz, TEXT("Calculation"), MB_OK);

	StringCchPrintf(sz, _countof(sz), TEXT("The result of dll is: %d"), g_nResult);

	MessageBox(NULL, sz, TEXT("Last Result"), MB_OK);
	return 0;
}
</span>

这部就已经将DLL调用起来了。

如果想以后想使用这个EXE,将DLL和EXE放在同一个文件夹中,以达到调用成功,否则会显示错误!









你可能感兴趣的:(Win32,dll,控制台,vs2012)