VS2010制作dll】的更多相关文章

一.为什么需要dll 代码复用是提高软件开发效率的重要途径.一般而言,只要某部分代码具有通用性,就可将它构造成相对独立的功能模块并在之后的项目中重复使用.比较常见的例子是各种应用程序框架,如ATL.MFC等,它们都以源代码的形式发布.由于这种复用是“源码级别”的,源代码完全暴露给了程序员,因而称之为“白盒复用”.“白盒复用”的缺点比较多,总结起来有4点. 暴露了源代码: 容易与程序员的“普通”代码发生命名冲突: 多份拷贝,造成存储浪费: 更新功能模块比较困难. 实际上,以上4点概括起来就是“暴露…
一.开使你的第一个DLL专案 1.File->Close all->File->New﹝DLL﹞ 代码: //自动产生Code如下 library Project2; //这有段废话 uses SysUtils, Classes; {$R *.RES} begin end. 2.加个Func进来: 代码: library Project2; uses SysUtils, Classes; Function MyMax ( X , Y : integer ) : integer ; std…
一.开使你的第一个DLL专案  1.File->Close all->File->New﹝DLL﹞代码: //自动产生Code如下  library Project2;  //这有段废话  uses  SysUtils,  Classes; {$R *.RES} begin  end. 2.加个Func进来:  代码: library Project2;  uses  SysUtils,  Classes; Function MyMax ( X , Y : integer ) : int…
1.最簡單的例子 首先你先新建->項目->類庫.然後右鍵項目.添加一個用戶控件.設置其用戶控件繼承button. egg: namespace ClassLibrary1{    public partial class UserControl1 : Button    {        public UserControl1()        {            InitializeComponent();        }    }}直接重新生成解決方案.這時候會報錯.把報錯的哪行代…
一.用C编写制作 DLL 如下图所示,是在C++的基础上新建的项目工程: 新建项目的工程文件中有.cpp文件. 由于我们是用C库制作的DLL,显然用C++来编写的是不合适的,我为什么用C库,而不用C++,是由于工程中还要添加C文件,如果用C++的话编译会报错,而且需要外部去声明C函数,函数多的话会很麻烦,如果直接用C库来编译的话直接包含头文件就可以使用,所以需要将Win32Project1.cpp.dllmain.cpp修改成Win32Project1.c.dllmain.c,stdafx.cp…
使用mingw制作dll文件 安装mingw 准备math.c文件 //math.c #include<stdio.h> int add(int a,int b){ return a+b; } int sub(int a,int b){ return a-b; } int mul(int a,int b){ return a*b; } int div(int a,int b){ return a/b; } 制作dll gcc math.c -shared -o math.dll -Wl,--o…
一.制作.dll1.首先创建一个新类库工程文件  文件->新建->项目->Visual C#->类库.填入工程文件名称,并且选择文件要存放的目录. 2.工程文件 将Class1.cs改名自己要创建的文件名:Operate.cs,并填入代码. 3.生成DLL文件 生成->生成myDll.dll,最后会在工程文件的bin\debug目录里看到myDll.dll,文件扩展名是dll. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Operate.cs…
转自(http://blog.csdn.net/wenmang1977/article/details/7733685) 序 前些天想写一下制作安装程序,由于要写的内容比较多,一拖再拖,不过坚持就是胜利,今天终于写完了. 1概述 做应用软件制作安装程序是很必要的一件事情,本文主要介绍使用VS2010自带的打包组建来开发一个安装程序,用一个例子的形式一步一步的叙述其中的一些技巧. 2基本的安装 2.1HelloWorld 为了有一个安装的目标,使用VS2010创建一个HelloWorld的C# W…
记录一个简单的dll自动注册工具制作:主要用到的是DllRegisterServer()方法,其实我们平常注册dll文件内部都会调用这个方法. 这里我就直接写在主程序里面了,需要注意的地方也直接在代码中标明. /// <summary> /// 应用程序的主入口点. /// </summary> const string strdll ="DCIModelApp.dll"; [DllImport(strdll)] //这里的参数只能是常量,将该工具与要注册的dl…
最近在把一个网站打包成安装程序,这方面的文章网上有很多,也看了不少,但因为开发环境的不同,遇到了一些问题,便写下这篇文章记下整个流程(有很多资源都来自互联网,由于条目颇多,所以无法说明其来处,敬请谅解). 一.开发环境 言归正传,先说明一下开发环境,win7 64位+visual studio 2010+IIS7. 二.制作流程 1.发布网站 要制作网站自定义安装程序,首先,我们得有一个准备打包的网站.我这里是一个ASP.NET网站.接下来就要对这个网站进行预编译,右击“解决方案资源管理器”的网…
最近做项目的时候,深圳那边提供了一个算法.算法在那边跑的好的很,但是在我这边怎么跑都跑不起来,总是报错:说找不到dll. 1.第一种想法:找不到dll,是不是dll放的位置不对.找了一下目录,导入的路径与所在文件目录对应.排除! 2.第二种想法:之前我同学说过,这里面会涉及到编译的问题.就是你的dll编译的是多少位,而你的项目编译的是多少位. 这就是我们经常在下软件的时候会涉及到32位的还是64的问题一样.64位的软件在32位上跑不起来. 一般的话选择Any CPU 较好.…
问题产生的过程是这样的,向exe项目(CSharp)中添加dll工程(c++开发)的引用,并将引用工程的属性“Link Library Dependencies”的值设为true,这样,在不加入lib的情况下,exe项目仍可以链接dll正常运行,但问题也出现了,在dll工程中设置 的断点会被无视. 解决方法: 一.DLL工程的设置 设置Configuration Properties->General->Output Directory的值为$(SolutionDir)\bin\$(Confi…
1.    DLL的基本概念 应用程序(exe)要引用目标代码(.obj)外部的函数时,有两种实现途径——静态链接和动态链接. 1.    静态链接 链接程序搜索对应的库文件(.lib),然后将这个对象模块拷贝到应用程序(.exe)中来.Windows之所不使用静态链接库,是因为很多基础库被很多应用程序使用.如果每个应用程序一份拷贝,将带来内存的极大浪费. 2.    动态链接 链接程序搜索到对应的库文件(.lib),然后根据函数名得到对应的函数入口地址,即可进行编译链接.直到真正运行的时候,应…
1.创建新C#控制台应用程序,项目命名createBll,打开Program.cs重命名为TestA(可以不重命名)并修改代码,如图: 写好后,可以写其它的类.cs文件 2.完成后,点击菜单栏的“项目”,下拉单选择“createDll属性”,打开如图窗口 在输出类型选择“类库”,然后关掉该窗口,生成解决方案,即生成了creatBll.dll文件,在项目下createBll\createBll\bin\Debug\createBll.dll目录下.   3.引用Dll文件,新建项目referenc…
1.    DLL的基本概念 应用程序(exe)要引用目标代码(.obj)外部的函数时,有两种实现途径--静态链接和动态链接. 1.    静态链接 链接程序搜索相应的库文件(.lib),然后将这个对象模块复制到应用程序(.exe)中来.Windows之所不使用静态链接库.是由于非常多基础库被非常多应用程序使用.假设每一个应用程序一份拷贝,将带来内存的极大浪费. 2.    动态链接 链接程序搜索到相应的库文件(.lib).然后依据函数名得到相应的函数入口地址,就可以进行编译链接. 直到真正执行…
当你开发了一个库的时候,就需要给库开发一个api文档,微软提供了一个C#库的自动生成工具.我在使用的过程中记录了相关的信息,以供大家学习和查阅,如有不正之处,欢迎指出. 首先先下载一个软件,下载地址在github上:https://github.com/EWSoftware/SHFB/releases 下载最新的版本即可.到本地后开始安装 先安装上面的msi文件,安装好以后,点击下面的文件 现在还是打开不了的,还需要下载个东西 这里有个提示很重要:意思是如果想使用单独的GUI程序,需要安装Mic…
1.c++dll含界面,以摄像头dll为例: 1.直接在c++SDK上调试运行成功,生成dll. 2.留一个调用接口(格式如下,写在cpp文件中,即函数体): extern "C" __declspec(dllexport) int Func()//格式函数头必须这样 { AFX_MANAGE_STATE(AfxGetStaticModuleState());//必须加 CClientDemoApp::CClientDemoApp();//调用的方法 return 0; } 3..c#…
1.VS新建工程,在选项的时候,选择dll和空项目,保持干净的dll库: 创建完以后,添加头文件以及源文件. 2.将外部模块使用的接口导出: (1)函数导出: __declspec(dllexport) int add(int a, int b) { return a+b: } (2)类导出: class __declspec(dllexport) testClass() { testClass(); ~testClass(); } 3.直接buiild以后,在debug或者release的目录…
1:新建安装部署项目 打开VS编辑器,点击新建项目,选择:其他项目类型->安装与部署->安装项目,然后点击确定. 2 安装向导完成后即可进入项目文件夹: 双击"应用程序文件夹"在右边的空白处右击,选择添加->文件,将你的做的应用程序的可执行文件和相应的类库和组件添加进来. 然后右击你的可执行文件,创建快捷方式,然后把快捷方式分别剪切或复制到左边的"用户的'程序'菜单"和"用户桌面"中. 这样安装程序安装安装完成后会在 "…
目前我出现了这个错误,原因是项目目录中包含了中文字符导致的,我改变了文件夹之后,就没问题了…
目的:获取某图片指定位置的颜色. 实现该目的的方法有很多,但为了有助于扩充自己技术广度,所以决定采用标题中的方法来完成. 没有C++编程经验,也没有制作C++版Opencv语法经验,也没有制作dll的经验,整个流程牵涉比较多的技术环节,每个环节需要一个一个测试通过,才能进行后续设计. 由于网上太多零散信息,没有很好的参考资料,大多只能靠自己实践测试,所以从开始,到跨机各种环境测试,整整花了1天半. 现在问题全部解决了,回头想想,流程太简单了! 开发环境: Win7系统 VS2017 Opencv…
VS---<在VS2010中 使用C++创建和使用DLL>(002) 前面初认识了创建和调用DLL,在VS工程下可以通过在 同一工程.不同工程 下创建和调用DLL.现在,同一工程下创建和调用DLL,实现三种方式的创建和调用DLL: (1)加载时动态链接方式调用DLL---用到_declspec(dllimport) (2)运行时动态链接方式调用DLL---用到LoadLibrary() (3)以.def文件(模块定义文件)方式导出函数 按其它方式,也可以分为: (1)静态调用DLL:添加“XX…
制作DLL时,在cpp种引入了头文件,但头文件里的全局变量在cpp种却不能用 参考大佬博客https://blog.csdn.net/speargod/article/details/88854344  …
动态链接库DLL导出函数并导入使用 本文完全参考自<vs2008制作dll笔记,回带值样例>. 首先制作DLL文件,在vs2010中新建Win32控制台项目,选择DLL选项,简历头文件,源文件如下: 头文件: // MyDll.h extern "C" _declspec(dllexport) int Max(int a, int b); extern "C" _declspec(dllexport) int Min(int a, int b); ext…
参考:http://blog.csdn.net/ninetowns2008/article/details/6311663 结合这篇博客:http://www.cnblogs.com/xumenger/p/4372289.html 再结合:http://blog.csdn.net/lailai186/article/details/8770487 1.DLL简介:2.调用DLL:3.创建DLL:4.两个技巧:5.初始化:6.例外处理 1.DLL简介 DLL是Dynamic-Link Librar…
DLL是Dynamic-Link Libraries(动态链接库)的缩写,库里面是一些可执行的模块以及资源(如位图.图标等).可以认为DLL和EXE基本上是一回事,只是DLL不能直接执行,而必须由应用程序或者其他DLL调用.DLL为应用程序间的资源共享提供了方便,同时也是多语言混合编程的重要手段.由此可见学习使用DLL是Windows程序员必须掌握的一项重要技术.   注:该内容是整理自以下链接 http://www.cnblogs.com/IceKernel/articles/2848848.…
首先:DLL技术是针对C的技术,虽然也支持C++,但是对C++的支持不够好.C++对应的是COM技术. 建议首先看一下Programming  Windows的21章,虽然没有讲MFC如何制作DLL,但是讲了一些很重要的基本概念. 教程地址: http://blog.csdn.net/chenqiang35/article/details/3069382 http://oulehui.blog.163.com/blog/static/79614698201152423656383/ http:/…
在一些特定要求下,我们的C#可能需要制作dll给LabView进行调用,并且我们不能够保证C#的程序是完全自己写而不调用第三方的dll库.很多时候我们需要使用诸如Sqlite.Net.AForge.Net之类的开源库,此时我们发现我们需要使用混合模式去兼容这些由.NET 2.0版本运行时开发的开源库. 一.C#中的混合模式 如果是C#应用程序,那么我们只要在工程对应项目中添加"应用程序配置文件"也就是app.config文件: 然后在里面填入如下信息进行编译即可: <?xml v…
看了好多网上写的关于dll文件生成和实用的资料发现多尔不全,都是抄来抄去,有的干脆就是搬用msdn上的原文,实在没有创意和可看的东西.于是本着学和实用的目的自己实践的东西分享给大家. 大前提:使用VS2010作为dll生成工具 概述:主要通过构建一个解决方案中的一个项目来演示如何定义和生成dll文件,在同一个方案中在创建一个项目主要用来进行生成dll的使用. 简易结构图: testdll(解决方案名) |——makedll(生成dll项目名) |——testdll(使用dll项目名) maked…