VS2008中生成DLL项目
- 创建项目
- 新建项目-> 选择Win32项目

- 输入项目名称,点击确定。在程序向导中选择下一步

- 选择DLL. 由于我想创建的是相对独立的DLL,所以不选择ATL和MFC. 点击完成。

- Main文件分析。

打开dllmain.cpp文件,这是DLL的入口文件,在这个文件里,可以在进程或者线程加载此文件时进行一些自己额外的处理。
- 添加自己的类。
- 右键点击项目,选择新建->类。

- 点击添加按钮。

- 输入类名,会自动生成.h文件和.cpp文件名。点击完成按钮。

- 打开MyClass1.h, 在类的外面添加自己的命名空间,这样可以更好的区分不同的功能,可以使类库写的很大,并且使用的时候不易混淆。

- 在类定义的前面加入如下的代码:

加入如下的代码后,以后在项目内方法的前面加上TESTDLL_API修饰符,就可以在引用该DLL的项目中调用这个方法。
TESTDLL_EXPORTS这个配置是在创建DLL项目的时候由VS自动创建的,如果改了项目的名字,这个配置不会自动更改,要自己改过来。

- 在MyClass1.h中加入一个方法的声明。

- 打开MyClass1.cpp,加上命名空间。

- 为自己的方法添加定义。

编译之后,这个DLL就可以用了。
- 创建项目使用DLL.
- 创建一个控制台程序。

- 点击下一步。

- 点击完成。

- 右击项目,在"框架和引用"中点击"添加引用"

- 选择DLL项目。点击确定。

- 点击OK.

- 添加附加目录。

这个目录是TestDll.h所在的目录,加入这个配置后,在项目中用#include "MyClass1.h"就可以找到了。
- 打开控制台项目的入口文件。引入DLL项目内的头文件。

- 加入如下的代码,调用DLL的中的方法。

- 编译完成后,运行程序。

注:
- 这个例子中,DLL中定义的方法,输入"this is a test",返回3,这个只是个例子,具体的转换逻辑还要自己写。
- 如果要把编译后的DLL方法别的地方使用,需要把MyClass1.h和TestDll.lib拷贝到使用的项目的根目录下,放到别的目录下也可以,但是需要像步骤4.7那样添加.h文件所在的路径。同时需要拷贝TestDll.dll到使用的项目的Debug或者Release目录下去。
- 注2说的是只是调用DLL的一种方法,其他的调用方式可以参见这篇文章:
http://www.cnblogs.com/daocaoren/archive/2012/05/30/2526495.html
VS2008中生成DLL项目的更多相关文章
- .NET在VS2008中生成DLL并调用
1.生成DLL 打开VS2008 - >新建->项目->类库->ClassLibrary1,在ClassLibrary1中会自动创建一个Class1类 class1中加入代码如 ...
- 关于matlab2014a中生成dll文件,打包成com组件出现的问题和解决方法
问题1:matlab2014a破解不完整,容易导致package打包失败 解决方法:1.下载破解文档:链接: http://pan.baidu.com/s/1eRJ4E2I 密码: 44th 2.下载 ...
- VS2008中调试dll
1.运行dll实例时,会直接弹出一个小框: 选择可拉起这个dll的exe运行就可以调试了 2.以后每次都会直接运行了,要重新选择程序,弹出上面的框,需要在project-->debugging- ...
- 在VS2012中采用C++中调用DLL中的函数 (4)
这两天因为需要用到VS2012来生成一个DLL代码,但是之前并没有用过DLL相关的内容,从昨天开始尝试调试DLL的文件调用,起初笔者在网络上找到了3片采用VSXXX版本进行调试的例子,相关的内容见本人 ...
- 生成dll文件的示例
看了好多网上写的关于dll文件生成和实用的资料发现多尔不全,都是抄来抄去,有的干脆就是搬用msdn上的原文,实在没有创意和可看的东西.于是本着学和实用的目的自己实践的东西分享给大家. 大前提:使用VS ...
- 【原创】在VS2012中采用C++中调用DLL中的函数(4)
这两天因为需要用到VS2012来生成一个DLL代码,但是之前并没有用过DLL相关的内容,从昨天开始尝试调试DLL的文件调用,起初笔者在网络上找到了3片采用VSXXX版本进行调试的例子,相关的内容见本人 ...
- 在VS2012中采用C++中调用DLL中的函数(4)
转自:http://www.cnblogs.com/woshitianma/p/3683495.html 这两天因为需要用到VS2012来生成一个DLL代码,但是之前并没有用过DLL相关的内容,从昨天 ...
- JNI中使用cl命令生成DLL文件
问题描述: 在使用JNI调用DLL时,首先需要生成DLL文件 问题解决: (1)现在使用VS2008的cl.exe程序,生成DLL文件 (1.1)cl.exe环境搭建 注: cl. ...
- 如何利用.snk文件生成DLL文件中的Publickeytoken
1.在该路径下C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin查找是否有sn.exe. 没有的话,从网上下载,注意需要的版本. 2.打开c ...
随机推荐
- JSOI2018R2题解
D1T1:潜入行动 裸的树上DP.f[i][j][0/1][0/1]表示以i为根的子树放j个设备,根有没有放,根有没有被子树监听,的方案数.转移显然. #include<cstdio> # ...
- 理解onPause和onStop
onPause 用于由一个Activity转到另一个Activity.设备进入休眠状态(屏幕锁住了).或者有dialog弹出时 onStop 用于不可见的Activity(有对话框弹出时,这时底下的a ...
- python开发_thread_线程基础
说到线程,我们要知道啥是串行,啥是并行程序 举个例子: 串行程序,就是一个一个的执行程序 #python threading import time ''' 每一秒中,输出:this is a dem ...
- URAL 1877 Bicycle Codes
1877. Bicycle Codes Time limit: 0.5 secondMemory limit: 64 MB Den has two four-digit combination loc ...
- 小程序swiper 快速滑动闪屏
bindchange: function(e){ if(e.detail.source == "touch") { this.setData({ current: current ...
- PHP通过AJAX及Access-Control-Allow-Origin实现跨域访问
这里的跨域实质上是由浏览器同源策略限制的一类请求场景,浏览器同源策略SOP(Same origin policy)是一种约定,由Netscape公司1995年引入浏览器,它是浏览器最核心也最基本的安全 ...
- 转:Windows中的命令行提示符里的Start命令执行路径包含空格时的问题
转自:http://www.x2009.net/articles/windows-command-line-prompt-start-path-space.html 当使用Windows 中的命令行提 ...
- 邮件基本常识普及(to/cc/bcc)
http://blog.sina.com.cn/s/blog_5572b4b5010009ul.html 前两天,某个同事发的一封邮件着实把我给郁闷了,他发的是图片形式的笑话,内容稍稍有点不太健康,这 ...
- 吐槽Windows 8,就没见过这么烂的平板操作系统
本文带有严重个人情感色彩,反感者慎入. CSDN 博文大赛得了个奖品,联想的平板电脑, MIIX2 8 .系统是 Windows 8 . 今天媳妇再次使用它,惹得我再次吐槽. 一句话.Windows ...
- blurImage做图片模糊处理报错free(): invalid next size
$image = new Imagick($url); $image->blurImage($x, $y); 调用blurImage($x, $y)函数报错: 原因是:原来的图片是CMYK的是印 ...