4.VS2010C++建立DLL工程
相关资料:
http://blog.csdn.net/jshayzf/article/details/23608705
http://blog.csdn.net/huang_xw/article/details/7524359
实际操作:
1.文件->新建->项目->Win32->Win32项目->写入名字"DBEngine"->确定->下一步->选择"DLL"->完成。
2.生成->生成解决方案->"DLL\DBEngine\Debug\"下面就有出现.dll文件了。
3.头文件->右击->添加->新建项->Visual C++->代码->头文件(.h)->写入名字"DataAccess.h"->添加。
代码:
#ifndef DataAccess_H_
#define DataAccess_H_
#ifdef DBEngine
#define DBEngine extern "C" _declspec(dllimport)
#else
#define DBEngine extern "C" _declspec(dllexport)
#endif
DBEngine int Add(int plus1, int plus2);
#endif
4.源文件->右击->添加->新建项->Visual C++->代码->C++文件(.cpp)->写入名字"DataAccess.cpp"->添加。
代码:
#include "stdafx.h"
#include "DataAccess.h"
#include <iostream>
using namespace std;
int Add(int plus1, int plus2)
{
int add_result = plus1 + plus2;
return add_result;
}
5.源文件->右击->添加->新建项->Visual C++->代码->模块定义文件(.def)->写入名字"DataAccess.def"->添加。
代码:
LIBRARY "DBEngine"
EXPORTS
Add @1
6.VS2010自动定义好了DLL入口。
7.生成->生成解决方案->"DLL\DBEngine\Debug\"就出现新的.dll文件与.lib了。
//***************************************Delphi调用DLL**************************************//
1.新建一个Delphi工程。
2.放入DLL。
3.写入如下代码:
unit Unit1; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons; type
TForm1 = class(TForm)
BitBtn1: TBitBtn;
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end; var
Form1: TForm1; function Add(Aint: Integer; Aint2: Integer):Integer; cdecl; external 'DBEngine.dll'; implementation {$R *.dfm} procedure TForm1.BitBtn1Click(Sender: TObject);
var
AddValue:Integer;
begin
AddValue := Add(, );
Caption := IntToStr(AddValue);
end; end.
4.F9运行就可以看到结果了。
PS:声明中不加__stdcall,采用VC默认格式__cdecl,但在Delphi中要注明调用格式为cdecl。
4.VS2010C++建立DLL工程的更多相关文章
- DLL入门浅析(1)——如何建立DLL
转载自:http://www.cppblog.com/suiaiguo/archive/2009/07/20/90619.html 初学DLL,结合教程,总结一下自己的所得,希望对DLL初学者们有所帮 ...
- VS2013中修改.dll工程项目的.lib和.dll的输出路径
一个dll工程,生成的两个东西是我们需要的:.lib和.dll,在实际开发过程中我们往往希望这两个东西直接输出到特定文件夹,对于这两个的修改: 设置好之后,对于调用该dll的exe工程,将exe的输出 ...
- STM8建立IAR工程
STM8是意法半导体公司出的增强型八位单片机,性能比51单片机强大,而且价格便宜,在商业应用中很受欢迎 在STM8的开发工程中主要有两种开发工具链.第一是使用IAR开发环境,第二十使用cosmic+s ...
- vs调试dll工程
dll本身是没法运行的,必须在其它工程调用dll时候才会运行. 所以,调试dll首先要将调用dll的工程和dll工程联系起来. 解决方案中添加dll工程: 现在dll 和 应用程序两个工程就都在一个解 ...
- win32 dll工程开发创建对话框
界面编程的CreateWindow函数需要instance,只要获取到dll工程的main的instance参数,就可以使用CreateWindow函数了. 创建对话框需要CreateDialog函数 ...
- 【非专业前端】Vue UI 之 建立Vuetify工程
先建立一个工程[Webpack] .. ..建立好之后,进入目录,添加vuetify插件 cd vuetify-demo vue add vuetify[会出错] npm install vuetif ...
- Eclipse建立Java工程中的三个JRE选项的区别(Use an execution environment JRE,Use a project specific JRE,Use default JRE)
本博客部分转载自: http://blog.csdn.net/wdjhzw/article/details/42086615 这篇博客写的非常好,很用心. 一.首先看新建Java Project时候 ...
- idea环境下建立maven工程并运行scala程序
idea中scala编程环境及建立maven工程 1.下载idea软件并破解:http://blog.csdn.net/nn_jbrs/article/details/70139178 2.安装sca ...
- 使用gtest对DLL工程进行单元测试的实践
前言 关于单元测试的重要性.gtest的优缺点等就不说了.之前项目是没有做单元测试的,在VS的解决方案中,只有一个可执行的工程,其他的工程都是以DLL库的形式提供.本文只针对使用VS对DLL库进行单元 ...
随机推荐
- php如何控制用户对图片的访问 PHP禁止图片盗链(转载)
把images目录设置成不充许http访问(把图片目录的:读取.目录浏览 两个权限去掉). 用一个PHP文件,直接用file函数读取这个图片.在这个PHP文件里进行权限控制. apache环境中,在你 ...
- ECSHOP 商品评论条件修改——购买过该商品且只能评价一次(购买多少次能评价多少次)
下文转自http://bbs.ecshop.com/thread-1131529-1-1.html ECSHOP 商品评论条件修改,修改为购买过该商品多少次,就只能评价多少次.不需要修改数据库,原理简 ...
- HDU2027 统计元音
#include<cstdio> #include<cstring> #include<algorithm> using namespace std; ; //此处 ...
- UITabbar item 设置笔记
很长一段时间都是用代码来写UITabbarController,试着用xib来写一次,但是遇到tabbar item的图标自定义的时候不知道从何入手,比如定义选定前和选定后的icon图片,这地方还是不 ...
- IOS设计模式之二(门面模式,装饰器模式)
本文原文请见:http://www.raywenderlich.com/46988/ios-design-patterns. 由 @krq_tiger(http://weibo.com/xmuzyq) ...
- CentOS 6安装mock
最近工作中需要用到mock,这里介绍两种安装方式.本文的环境为CentOS 6.4 x86_64. 一,使用yum安装mock 安装第三方yum源RPMForge Centos5 64位 wget h ...
- 开发者必须知道的HTML5十五大新特性
HTML5想必大家都很熟悉了,因为太多的媒体在讨论这一技术.然而,你能准确地说出HTML5带来了哪些新特性吗?本文总结了HTML5带来的15项你必须知道的新特性. 一起来看下: 1.新的文档类型 ( ...
- USB鼠标过一段时间后失灵问题的修复
现象: USB鼠标计算机锁屏一段时间后,不能动了,拔下来重新插上后,又恢复正常了. 原因: 这是系统默认USB电源管理造成的.一段时间不用后,自动关闭了USB电源. 解决方法: 1.进入设备管理器 在 ...
- 性能测试之Windows常见性能计数器
性能计数器(counter)是描述服务器或操作系统性能的一些数据指标.计数器在性能测试中发挥着“监控和分析”的关键作用,尤其是在分析系统的可扩展性.进行性能瓶颈的定位时,对计数器的取值的分析非常关键. ...
- Java之--Java语言基础组成(关键字、标识符、注释、常量和变量、运算符)
Java语言基础组成-关键字.标识符.注释.常量和变量.运算符 Java语言由8个模块构成,分别为:1.关键字:2.标识符(包名.类名.接口名.常量名.变量名等):3.注释:4.常量和变量:5.运算符 ...