Visual Studio 写自己的动态链接库(DLL)

有些时候,我们想写自己的函数库以避免重复写代码,此文介绍如何使用Visual Studio编写自己的动态链接库。

0,实验环境说明:

集成开发环境:Visual Studio 10.0

操作系统: Windows 7

语言:C/C++

1,编写自己的DLL

我们分两部分介绍如何完成编写自己的DLL。

1.1,环境搭建

介绍如何使用Visual Studio建立一个DLL工程,已经额外的配置。

首先,建立一个dll的空工程,如下图所示:

添加两个文件,一个头文件(mydll.h),一个源文件(mydll.cpp),文件名根据自己的需要命名,这里并不需要写死文件名。

特别注意项目属性中是否存在类似如下图所示的内容,若无红框标记的宏,请添加合适的宏,例如MYDLL_EXPORT。

1.2,代码说明

向.h文件中添加如下内容:

#ifndef __MY_DLL_H__
#define __MY_DLL_H__
#if (defined WIN32 || defined _WIN32 || defined WINCE) && defined MYDLL_EXPORTS
#  define AB_EXPORTS __declspec(dllexport)
#else
#  define AB_EXPORTS
#endif
AB_EXPORTS void func();
#endif

上面的代码中,func就是我们自己定义的函数。

向.cpp文件中添加如下代码:

#include "mydll.h"
#include <iostream>
void func(){
  std::cout << "hello func \n";
}

执行生成命令之后,在生成目录下回出现如下的内容:

2,测试自己编写的DLL

添加一个Win32 Consol Application空项目,向新项目中添加cpp代码文件,并加入如下代码:

#include "mydll.h"
#include <iostream>
using namespace std;
int main(){
  func();
  return 0;
}

然后按如下图所示配置。

生成-> Ctrl + F5执行!如下图所示执行结果:

总结

本文主要讨论了如何使用Visual Studio创建自己的dll,用例子阐述了这个过程,结果表明文中的方法可行。

如有不足支持,欢迎大家批评指正。

时间: 2024-12-19 06:27:20

Visual Studio 写自己的动态链接库(DLL)的相关文章

还是用 Visual Studio 写 Node 舒服

很多收拾的工作.第一仗打完就暴露了很多问题,有工作流程上的,有开发流程上的,有工具上的,有决策上的. 从开发工具上来说,工程上了百行,维护着就累了.我的编程习惯数年早被 Visual Studio 娇惯出来了,所以还是回去好了.正好新版支持 JavaScript.LESS.Jade 了,而且也有 NodeJS 的工具. 还是用 Visual Studio 写着舒服,和 Sublime 倒着来吧. 曾国藩说过,为人,切勿使他人难堪. 昨天的好茶,依然有味,早沐浴之后,又是几壶.

visual studio中新建和使用dll

本文的目的是 创建一个最小化的dll并使用它 环境:win7 + vs2012 一个VS的解决方案(sln)下面可以有多个项目(project),所以这里新建一个解决方案,然后下面创建两个项目. 新建第一个 Win32 项目 my_dll,注意,是Win32,点 DLL 和 空项目: 在 my_dll 工程的 头文件 里头 添加 新建项 取名 my_dll.h 在 my_dll 工程的 源文件 里头 添加 新建项 取名 my_dll.cpp my_dll.h里头写入: 1 //---------

visual studio 2015生成64位DLL文件

新建一个visual C ++  ->win32项目 点击生成->配置管理器新建一个64位debug位平台 hello.cpp程序代码如下: #include "stdafx.h" #include "jni.h" #include "com_magc_jni_HelloWorld.h" JNIEXPORT void JNICALL Java_com_magc_jni_HelloWorld_DisplayHello (JNIEnv *

C++学习(二)之Visual Studio写system语句 生成可执行文件

system命令 1.首先先介绍一些system命令 windows+tab  //切换窗口 windows+R  //调出命令窗口 命令: 输入 calc  打开计算机 输入 cmd 打开命令窗口 输入 mspaint 打开画图 system是一个函数 用来运行外部的程序 格式 system("命令语句"): 需要在代码前加上头文件  #include<stdio.h>  才可以用 (1)关机命令 shutdown -s   //关机 shutdown -a  //取消关

Visual Studio 2010: 调试引用的dll的代码?

right click the solution in the Solution Explorer-> Properties->  Debug ->Enable Debuggers-> Enable unmanaged code debugging

用Visual Studio Code写Node.j

介绍 vsc的宣传语是: 一个运行于 Mac OS X.Windows和 Linux 之上的,针对于编写现代 Web 和云应用的跨平台源代码编辑器. 按它说的,vsc特别适合来作为前端开发编辑器. 内置html开发神器emmet(zencoding),对css及其相关编译型语言Less和Sass都有很好的支持. 当然,最nice的还是写js代码了,这也是我接下来要着重介绍的功能. 智能提示 因为之前微软推出了typescript语言,结合tsd文件,用visual studio写typescri

Visual Studio环境变量、工作目录、vc++目录、 命令等 的配置和作用

在调试 Visual Studio 2008 程序时,经常有一些动态链接库(即 dll 文件)需要加载到工程里,这样才能依赖第三方库进行程序调试. 这些动态链接库,往往都是测试版本或是开发中的版本,或者会有若干个版本:这个时候,如果直接把 dll 所在目录加到 PATH 里,则会有潜在冲突的危险:如果直接拷贝到 Visual Studio 的目录下,假如测试工程太多,每次有新版本的动态链接库更新时,你需要更新若干次,拷贝.粘贴苦不堪言. 在开发过程中,究竟怎样来让 Visual Studio 链

Visual Studio解决方案的目录结构设置和管理

摘至:http://blog.csdn.net/lp310018931/article/details/47991759 首先,解决方案和项目文件夹包含关系(c++项目): VS解决方案和各个项目文件夹以及解决方案和各个项目对应的配置文件包含关系,假设新建一个项目ssyy,解决方案起名fangan,注意解决方案包括项 目,此时生成的最外层目录为fangan代表整个解决方案的内容都在这个文件夹内.在这个fangan文件夹内包含有fangan.sln的解决方案配置 文件和一个ssyy文件夹,ssyy

Visual Studio 2012环境变量、工作目录、vc++目录、 命令等 的配置和作用

在调试 Visual Studio 212 程序时,经常有一些动态链接库(即 dll 文件)需要加载到工程里,这样才能依赖第三方库进行程序调试. 这些动态链接库,往往都是测试版本或是开发中的版本,或者会有若干个版本:这个时候,如果直接把 dll 所在目录加到 PATH 里,则会有潜在冲突的危险:如果直接拷贝到 Visual Studio 的目录下,假如测试工程太多,每次有新版本的动态链接库更新时,你需要更新若干次,拷贝.粘贴苦不堪言. 在开发过程中,究竟怎样来让 Visual Studio 链接