VC2010编写Dll文件(转)
1、 打开VS2010【Flie / New / Project / Visual C++ / Win32 / Win32 Console Application】在下面输入一个名称,比如mydll,然后【OK / Next】,然后在Application Type里选择Dll,在Additional Options里选择Exports Symbols,最后点击Finish。
2、在mydll.cpp里面已经有相关的例子模板了。可以照着他的写法写自己的函数。但是注意,对于有参数传递的函数,编写格式如下:
MYDLL_API int _stdcall MaxNumber(int x,int y)
{
if (x>y)
return x;
return y;
}
即多了个_stdcall ,这个是需要注意的,函数写好后,还要在mydll.h里进行申明。它里面也有相应函数的申明格式,对于上面那个函数,申明也要加_stdcall 。即应该申明为MYDLL_API int _stdcall MaxNumber(int x,int y)。
3、现在写一个.def的模块文件。文件内容编写格式如下
LIBRARY "mydll"
EXPORTS
MaxNumber
函数名2
函数名3
……
上面的myll就是你的dll名称,MaxNumber就是我们要导出的函数,函数名2,函数名3也是我们要导出的函数的名称,要导出多个函数,则在下面依次写上要导出的函数名称即可。
假如我们编写的def文件命名为name.def,注意把name.def放在编译的文件夹下。然后我们在工程里打开Properties窗口【选中mydll,然后右键Properties】,然后【Configuration Properties / Linker / Input】在右边的Module Definition File里填入我们的模块名称name.def,然后点击确定.
4、现在就可以直接点击运行按钮进行dll文件编译了。
需要说明的是,上面编译后的dll文件只能在装了VC2010运行库的操作系统上才能运行。如果要在没有装VC2010运行库的操作系统也能使用那个dll文件,则在执行第4步之前先进行如下操作:在工程里打开Properties窗口【选中mydll,然后右键Properties】,然后【Configuration Properties / General 】在右边的Use of MFC里选择Use MFC in a Static Library,然后点击确定。不过这样编译出来的dll文件比原来的dll文件大很多。
VC2010编写Dll文件(转)的更多相关文章
- C++编写DLL文件
动态链接库DLL文件与EXE文件一样也是可执行文件,但是DLL也被称为库,因为里面封装了各种类.函数之类的东西,就像一个库一样,存着很多东西,主要是用来调用的.调用方式主要分为两种:隐式(通过lib文 ...
- Win7 VS2015 x64 MASM汇编语言编写DLL文件
有点坑记录一下. 首先创建工程时选控制台类型工程,Win32估计就应该选Win32的,反正我测试用的控制台. 然后选DLL类型,除了Empty其他全都去掉. 工程属性,masm勾上. Linker & ...
- C++ 编写DLL文件给易语言调用
摸索了两天了,终于解决了所有问题,在此跟大家分享. 需要三个文件,dll_demo.h.dll_demo.cpp.dll_dome.def 直接上代码: 头文件如下: #ifndef _DLL_DEM ...
- C#直接使用DllImport调用C/C++动态库(dll文件)
1.C/C++动态库的编写 下面是我编写的一个比较简单的C++dll文件用来测试,关于如何编写dll文件,我这里便不再赘述,不懂得自行查询, (1).h文件 #ifdef MYDLL_EXPORTS ...
- Windows中DLL文件的意义及其作用
Windows中DLL文件的意义及其作用 DLL是Dynamic Link Library的缩写,意为动态链接库.DLL文件即动态链接库文件,是一种可执行文件,它允许程序共享执行特殊任务所必需的代码和 ...
- delphi 基础之三 编写和调用dll文件
delphi 编写和调用dll文件 Windows 的执行文件可以划分为两种形式程序和动态连接库 (DLLs).一般程序运行是用.EXE文件,但应用程序有时也可以调用存储在DLL的函数. 在如下几 ...
- .dll 文件编写和使用
1.基本概念 dll(dynamic-link library),动态链接库,是微软实现共享函数库的一种方式.动态链接,就是把一些常用的函数代码制作成dll文件,当某个程序调用到dll中的某个函数的时 ...
- Delphi 编写DLL动态链接库文件的知识
一.DLL动态链接库文件的知识简介: Windows的发展要求允许同时运行的几个程序共享一组函数的单一拷贝.动态链接库就是在这种情况下出现的.动态链接库不用重复编译或链接,一旦装入内存,Dlls函数可 ...
- Delphi 编写DLL动态链接库文件的知识和样例(有详细步骤,很清楚)
一.DLL动态链接库文件的知识简介: Windows的发展要求允许同时运行的几个程序共享一组函数的单一拷贝.动态链接库就是在这种情况下出现的.动态链接库不用重复编译或链接,一旦装入内存,Dlls函数可 ...
随机推荐
- 判断Android应用是否安装、运行
本文介绍3个方法,判断手机上是否安装了某应用.该应用是否正在运行.获取手机某个APK文件的安装Intent.启动该Intent就可以直接安装该APK. /** * 判断应用是否已安装 * * @par ...
- python解析XML之ElementTree
#coding=utf-8 from xml.etree import ElementTree as ET tree=ET.parse('test.xml') root = tree.getroot( ...
- [转]Android 如何对sqlite数据库进行增删改[insert、update和delete] 操作
import android.content.ContentValues; import android.content.Context; import android.database.Cursor ...
- CentOS下Samba服务器的配置
主要用途: 在两台计算机间共享文件.打印机 安装: yum install samba 启动服务: /etc/rc.d/init.d/smb start 添加用户 (必须是系统中真实存在的用户) s ...
- CodeForces 678D Iterated Linear Function
简单矩阵快速幂. #include<cstdio> #include<cstring> #include<cmath> #include<algorithm& ...
- UVALive 4992 Jungle Outpost(半平面交)
题意:给你n个塔(点)形成一个顺时针的凸包,敌人可以摧毁任何塔,摧毁后剩下的塔再组成凸包 在开始的凸包内选一点为主塔,保证敌人摧毁尽量多塔时主塔都还在现在的凸包内,求出最多摧毁的塔 题解:这题关键就是 ...
- ArrayList类
/* * Collection是集合的顶层接口,它的子体系有重复的,有唯一的,有有序的,有无序的 * * Collection的功能概述 * 1添加功能 * boolean add(Object ob ...
- L9,a cold welcome
expression: a large crowd of 一大群 in twenty minutes’time 20分钟之后 一些时间使用的介词 in two year‘s time on Satur ...
- Codeforces Round #366 (Div. 2) C. Thor (模拟)
C. Thor time limit per test 2 seconds memory limit per test 256 megabytes input standard input outpu ...
- C#实现拷贝对象
大家都知道,在C#中变量的存储分为值类型和引用类型两种,而值类型和引用类型在数值变化是产生的后果是不一样的,值类型我们可以轻松实现数值的拷贝,那么引用类型呢,在对象拷贝上存在着一定的难度. 下 ...