源:VS2010环境下用ANSI C创建DLL和使用方法

. 创建DLL工程
1.1 启动VS
1.2 创建一个dll工程。
操作:a.文件->新建->项目->Win32控制台应用程序.
b.输入工程名称,这里我们用dll,点击确定按钮.
c.点击下一步,在"应用程序设置界面设置"勾选DLL(D)项和空项目,点击完成按钮.
d.视图->解决方案资源管理器,右键点击"头文件",添加->新建项,这里咱们用dll.h
右键点击"源文件",添加->新建项,这里我们添加dll.c,到此dll工程搭建完毕.
1.3 dll.h的内容如下
#ifndef AXLPLUGIN_H
#define AXLPLUGIN_H
/**/
#ifdef _WINDOWS
#define DLL_DECLARE __declspec(dllexport)
#else
#define DLL_DECLARE
#endif
DLL_DECLARE int Min(int a, int b);
/* 把所有的函数声明都列在这里 */
#endif
1.4 dll.c的内容如下
#include "dll.h"
#include <stdio.h>
/*根据需要添加相应的头文件*/
DLL_DECLARE int Min(int a, int b)
{
if (a >= b)
return b;
else
return a;
}
/* 把所有声明的函数都在这里实现*/
. DLL文件的使用
2.1 试验证明dll.dll文件要和dll.lib以及dll.h文件一起使用
2.2 新建一个测试用的"Win32应用程序"
操作:a.文件->新建->项目->Win32控制台应用程序.
b.输入工程名称,这里我们用test_dll,点击确定按钮.
c.点击下一步,在"应用程序设置界面设置"控制台应用程序"和"空项目",点击完成按钮.
d.将工程dll目录里的dll.h/dll.dll/dll.lib拷贝到工程test_dll目录里。
e.视图->解决方案资源管理器,右键点击"头文件",添加->新建项,这里咱们用dll.h
右键点击"源文件",添加->新建项,这里我们添加test_dll.c,右键点击“资源文件”,
添加->"现有项",选择dll.lib,到此test_dll工程搭建完毕.
2.3 编辑test_dll.c文件,内容如下
#include "dll.h"
#include <stdio.h>
int main()
{
printf("Min(2, 4) = %d/n", Min(, ));
printf("Min(5, 2) = %d/n", Min(, ));
return ;
}
2.4 dll和test_dll工程的目录结构
2.4. dll工程目录结构
../dll/
│ dll.sdf
│ dll.sln
│ dll_dir.txt
├─Debug
│ dll.dll
│ dll.exp
│ dll.ilk
│ dll.lib
│ dll.pdb
├─dll
│ │ dll.cpp
│ │ dll.h
│ │ dll.vcxproj
│ │ dll.vcxproj.filters
│ │ dll.vcxproj.user
│ └─Debug
│ cl.command..tlog
│ CL.read..tlog
│ CL.write..tlog
│ dll.Build.CppClean.log
│ dll.dll.embed.manifest
│ dll.dll.embed.manifest.res
│ dll.dll.intermediate.manifest
│ dll.lastbuildstate
│ dll.log
│ dll.obj
│ dll.write..tlog
│ dll_manifest.rc
│ link-cvtres.read..tlog
│ link-cvtres.write..tlog
│ link.-cvtres.read..tlog
│ link.-cvtres.write..tlog
│ link..read..tlog
│ link..write..tlog
│ link.command..tlog
│ link.read..tlog
│ link.write..tlog
│ mt.command..tlog
│ mt.read..tlog
│ mt.write..tlog
│ rc.command..tlog
│ rc.read..tlog
│ rc.write..tlog
│ RCa02504
│ vc100.idb
│ vc100.pdb
└─ipch
└─dll-75fa4624
dll-129995a8.ipch 2.4. test_dll工程的目录结构
../test_dll/
│ test_dll.sdf
│ test_dll.sln
│ test_dll_dir.txt
├─Debug
│ test_dll.exe
│ test_dll.ilk
│ test_dll.pdb
├─ipch
│ └─test_dll-eb5063a1
│ test_dll-c06c53e7.ipch
└─test_dll
│ dll.dll
│ dll.h
│ dll.lib
│ test_dll.c
│ test_dll.vcxproj
│ test_dll.vcxproj.filters
│ test_dll.vcxproj.user
└─Debug
cl.command..tlog
CL.read..tlog
CL.write..tlog
link-cvtres.read..tlog
link-cvtres.write..tlog
link.-cvtres.read..tlog
link.-cvtres.write..tlog
link..read..tlog
link..write..tlog
link.command..tlog
link.read..tlog
link.write..tlog
mt.command..tlog
mt.read..tlog
mt.write..tlog
rc.command..tlog
rc.read..tlog
rc.write..tlog
test_dll.Build.CppClean.log
test_dll.exe.embed.manifest
test_dll.exe.embed.manifest.res
test_dll.exe.intermediate.manifest
test_dll.lastbuildstate
test_dll.log
test_dll.obj
test_dll_manifest.rc
vc100.idb
vc100.pdb

VS2010环境下用ANSI C创建DLL和使用方法(转)的更多相关文章

  1. libCURL开源库在VS2010环境下编译安装,配置详解

    libCURL开源库在VS2010环境下编译安装,配置详解 转自:http://my.oschina.net/u/1420791/blog/198247 http://blog.csdn.net/su ...

  2. Boost学习总结(一)VS2010环境下编译STLport和Boost

    Boost学习总结(一)VS2010环境下编译STLport和Boost Boost简介 Boost库是一个功能强大.构造精巧.跨平台.开源并且完全免费的C++程序库.1998年,Beman G.Da ...

  3. macOS Sierra Version 10.12.6 环境下Tomcat的下载与安装以及InterlliJ IDEA 2017.2 环境下配置Tomcat 与创建Web项目

    一.Tomcat的下载与安装 1.官网(http://tomcat.apache.org/)下载Tomcat 9.0 Core:zip包: 2.解压到指定的文件夹即可安装完成: 3.测试是否安装成功 ...

  4. vc的环境变量配置和缺少mspdb60.dll的解决方法

    vc的编译器是cl.exe,我们如果在vc中编译就不用配置环境,但是如果要在任何位置用命令提示符打开编译器cl.exe来编译程序,那么就要配置环境了. 下面我就讲讲vc的环境变量配置和缺少mspdb6 ...

  5. 转:Linux环境下段错误的产生原因及调试方法小结

    源地址:http://www.cnblogs.com/panfeng412/archive/2011/11/06/2237857.html 补充:http://baike.baidu.com/link ...

  6. Linux环境下C语言线程创建---简单代码

    在Linux环境下用C语言编写线程创建. //file name: pthreadtext.c #include <stdio.h> #include <pthread.h> ...

  7. Win10或Win8下ObjectARX2015 Wizard向导创建项目失败解决方法

    [原创]objectARX 2015 Wizard安装向导在Win8/win10下无法创建项目的解决方法总结by edata @2017-5-1objectARX 2015 Wizard安装向导在Wi ...

  8. Linux环境下段错误的产生原因及调试方法小结(转)

    最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且 项目工程庞大复杂,出现了不少问题,其中遇到最多.花费时间最长的问题就是著名的“段错误”(Segmentation F ...

  9. Linux环境下段错误的产生原因及调试方法小结

    转载自http://www.cnblogs.com/panfeng412/archive/2011/11/06/2237857.html 最近在Linux环境下做C语言项目,由于是在一个原有项目基础之 ...

随机推荐

  1. toad执行存储过程

    选中存储过程,右键执行,根据存储过程中的sql语句,输入参数, 执行结果的out值点击connection output,鼠标放在statement标签,就会显示下边的out值. 在db2cmd下执行 ...

  2. iOS拨打电话(三种方法)

    iOS拨打电话(三种方法)  查了很多地方的关于iOS程序拨打电话,大都不全,今天我总结了三种方法,各有不同,拿来给大家分享,希望给大家有所帮助 1,这种方法,拨打完电话回不到原来的应用,会停留在通讯 ...

  3. 转载 Deep learning:五(regularized线性回归练习)

    前言: 本节主要是练习regularization项的使用原则.因为在机器学习的一些模型中,如果模型的参数太多,而训练样本又太少的话,这样训练出来的模型很容易产生过拟合现象.因此在模型的损失函数中,需 ...

  4. Jdk1.7环境变量的配置

    在"系统属性——高级——环境变量——系统变量"中新建如下变量: 变量名:JAVA_HOME 变量值:C:\Program Files\Java\jdk1.7.0_03  (即jdk ...

  5. android apk jarsigner 签名打包

    cmd 命令符打包: 规则:  jarsigner -verbose -keystore 签名路径 -signedjar 签名后的apk存放路径  未签名的apk 签名文件的别名 项目如我的项目是: ...

  6. 转:loadrunner ---循环输出关联数组

    web_reg_save_param,将Ord参数值设定为ALL,则关联函数将自动把符合条件的关联值保存到参数数组里.在本例中,假设关联值返回三条记录,则LR分别将值保存到sor_1,sor_2,so ...

  7. EF5修改edmx表结构保存后不自动更新tt (转)

    http://blog.csdn.net/panderman/article/details/8172968 不知道这算不算一个bug,当你新建一个从数据库生成的edmx时,他能正确的生成所有的tt文 ...

  8. dev GridControl直接打印 纵向合并单元格

    GridControl纵向合并单元格 只需设置 gridView->OptionView->AllowCellMerge=true; 效果 提示: 精确到列 前提是gridview1已经允 ...

  9. Mysql命令-以NULL做where条件过滤时应该写 IS NULL;

    以NULL做where条件过滤时应该写 IS NULL;SELECT * FROM pet WHERE death IS NULL; SELECT * FROM pet WHERE death IS ...

  10. access restriction

    一.既然存在访问规则,那么修改访问规则即可.打开项目的Build Path Configuration页面,打开报错的JAR包,选中Access rules条目,选择右侧的编辑按钮,添加一个访问规则即 ...