`
sonyfe25cp
  • 浏览: 202662 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

创建和使用DLL

阅读更多
一直很好奇C++的Dll是个什么东西...
最近终于知道了..

1.创建project
  选择Win32 Dynamic Link Library,然后 OK, 然后 选择带一个例子的那个 project
2.写一个简单的方法
  在project中可以看到已经创建好的4个文件.
  dlltest.cpp   StdAfx.cpp  dlltest.h  StdAfx.h
  先在dlltest.h 中生命自己要写的方法
 
#ifdef DLLTEST_EXPORTS
#define DLLTEST_API __declspec(dllexport)
#else
#define DLLTEST_API __declspec(dllimport)
#endif



DLLTEST_API int add(int a,int b);


然后去dlltest.cpp 中实现之
#include "stdafx.h"
#include "dlltest.h"

BOOL APIENTRY DllMain( HANDLE hModule, 
                       DWORD  ul_reason_for_call, 
                       LPVOID lpReserved
					 )
{
    switch (ul_reason_for_call)
	{
		case DLL_PROCESS_ATTACH:
		case DLL_THREAD_ATTACH:
		case DLL_THREAD_DETACH:
		case DLL_PROCESS_DETACH:
			break;
    }
    return TRUE;
}



DLLTEST_API int add(int a,int b)
{
	return a+b;
}

这样dll就算是写完了,build 一下.
3.使用Dll
  去dlltest的文件目录下的debug中,把dlltest.dll 和 dlltest.lib 复制到目标程序中,然后把 dlltest.h 也复制到目标程序中.

在目标程序 testdll.cpp 中

#include "dlltest.h"
#include <stdio.h>

int main(){
	int c=add(3,5);
	printf("%d\n",c);

	return 0;
}



这样build.没有错误..但是运行会提示错误..
在该project的 settings 中 的 link 标签页 中间 那行 Object/Library modules: 中添加dlltest.lib 。
然后build.然后运行..

现在已经可以成功使用dll了.

ps:微软的东西真是麻烦...
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics