博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++ VS2010中 C++创建DLL图解
阅读量:4114 次
发布时间:2019-05-25

本文共 1486 字,大约阅读时间需要 4 分钟。



一、DLL的创建 

创建项目: Win32->Win32项目,名称:MyDLL

选择DLL (D) ->完成.

1、新建头文件testdll.h

testdll.h代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
#ifndef TestDll_H_
#define TestDll_H_
#ifdef MYLIBDLL
#define MYLIBDLL extern "C" _declspec(dllimport) 
#else
#define MYLIBDLL extern "C" _declspec(dllexport) 
#endif
MYLIBDLL 
int 
Add(
int 
plus1, 
int 
plus2);
//You can also write like this:
//extern "C" {
//_declspec(dllexport) int Add(int plus1, int plus2);
//};
#endif

2、新建源文件testdll.cpp

testdll.cpp代码如下:

1
2
3
4
5
6
7
8
9
#include "stdafx.h"
#include "testdll.h"
#include <iostream>
using 
namespace 
std;
int 
Add(
int 
plus1, 
int 
plus2)
{
int 
add_result = plus1 + plus2;
return 
add_result;
}

3、新建模块定义文件mydll.def
mydll.def代码如下:

1
2
3
LIBRARY 
"MyDLL"
EXPORTS
Add @1

4、vs2010自动创建dllmain.cpp文件,它定义了DLL 应用程序的入口点。

dllmain.cpp代码如下:

// dllmain.cpp : 定义 DLL 应用程序的入口点。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include "stdafx.h"
BOOL 
APIENTRY DllMain( 
HMODULE 
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;
}

最后,编译生成MyDLL.dll文件和MyDLL.lib文件。

1>------ 已启动生成: 项目: MyDLL, 配置: Debug Win32 ------

1>  dllmain.cpp

========== 生成: 成功 1 个,失败 0 个,最新 0 个,跳过 0 个 ==========

 

1>------ 已启动生成: 项目: MyDLL, 配置: Debug Win32 ------

1>  stdafx.cpp

1>  testdll.cpp

1>  MyDLL.cpp

1>  正在生成代码...

1>     正在创建库 D:\Visual C++\工程\Libaray\MyDLL\Debug\MyDLL.lib 和对象 D:\Visual C++\工程\Libaray\MyDLL\Debug

原文链接:

转载地址:http://nnkpi.baihongyu.com/

你可能感兴趣的文章
TCP/IP协议三次握手与四次握手流程解析
查看>>
PHP 扩展开发 : 编写一个hello world !
查看>>
inet_ntoa、 inet_aton、inet_addr
查看>>
用模板写单链表
查看>>
链表各类操作详解
查看>>
C++实现 简单 单链表
查看>>
Linux的SOCKET编程 简单演示
查看>>
Linux并发服务器编程之多线程并发服务器
查看>>
C语言内存检测
查看>>
Linux epoll模型
查看>>
Linux系统编程——线程池
查看>>
Linux C++线程池实例
查看>>
shared_ptr的一些尴尬
查看>>
C++总结8——shared_ptr和weak_ptr智能指针
查看>>
c++写时拷贝1
查看>>
Linux网络编程---I/O复用模型之poll
查看>>
Java NIO详解
查看>>
在JS中 onclick="save();return false;"return false是
查看>>
idea 有时提示找不到类或者符号
查看>>
matplotlib.pyplot.plot()参数详解
查看>>