vs生成dll

//sub.h

#ifndef _SUB_H
#define _SUB_H
_declspec(dllexport) void sub(int a,int b);
#endif

//sub.cpp
#include "sub.h"
#include <iostream>

void sub(int a,int b)
{
    std::cout<<(a-b)<<std::endl;
}

选静态或者动态,静态生成.lib,动态生成.lib和.dll

最后使用是其实只需要用到 "sub.h", "sub.lib" 和 "sub.dll"即可,建议可以如下重新生成一个接口声明文件替代“sub.h”交予用户,这个“api.h”内容如下:

#ifndef _API_H
#define _API_H

#pragma comment(lib, "sub.lib")
_declspec(dllimport) int ADD(int a, int b);

#endif

其中 “_declspec(dllimport)" 同样可以去掉不要。此外,基本上VS下面 _declspec(dllexport)和 _declspec(dllimport)互相替换同样可以编译通过,其实作用不大,貌似是为了兼容老版本或VC的。但是,个人感觉在正确的地方使用dllexport或dllimport可以是程序更清晰。

这一版总结较上一版最大的区别就是减少了冗余的生命,是的模块间关系更清晰。

时间: 2024-10-13 12:44:34

vs生成dll的相关文章

(Unity)Unity自定义Debug日志文件,利用VS生成Dll文件并使用Dotfuscated进展混淆,避免被反编译

Unity自定义Debug日志文件,利用VS生成Dll文件并使用Dotfuscated进行混淆,避免被反编译. 1.打开VS,博主所用版本是Visual Studio 2013. 2.新建一个VC项目,选择类库,取名为JefferyChan,具体步骤如下图: 3.因为要调用Unity中的相关文件,所以这里要引入外部文件.首先在Unity的安装文件夹中找到UnityEngine.dll,我的路径是:D:\Program Files (x86)\Unity\Editor\Data\Managed 如

C++ 生成 dll 和调用 dll 的方法实例(转)

1)生成dll 建立两个文件 xxx.h , xxx.cpp xxx.h内容如下: #ifdef BUILD_XXX_DLL#define EXPORT __declspec(dllexport)#else#define EXPORT __declspec(dllimport)#endif extern "C"{EXPORT void example(void);... ...} xxx.cpp内容如下: #define BUILD_XXX_DLL#include "xxx.

MinGW 与 MSVC 生成 DLL 各种情况的折腾笔记

??本博文由CSDN博主zuishikonghuan所作,版权归zuishikonghuan所有,转载请注明出处:http://blog.csdn.net/zuishikonghuan/article/details/51918076 写这篇博客,主要是刚折腾 MinGW,相关内容网上的资料不全,而且错误很多 其实之前我根本没把这个当回事,我就想 MinGW 跟 Linux 上的 GNU 编译器不会有差别,但是事实却不是这样... 提示:所有代码均使用 __stdcall 安装 MSVC 和 M

VS2008下WinRar源码生成dll和 lib总结

WinRar官方提供了源码(http://www.rarlab.com/rar_add.htm):如果自己想要修改里面的内容就要重新生成DLL和LIB,我在网上找了很多资料都没有说得很清楚.花一两天的时间才把他生成成功.网上的资料都给了一些误导,所以改了很久才完成.现在给出正确的步骤,给这方面的学习者提供一下思路. )建立一个空的win32 dll工程2)把.hpp和.cpp都添加到工程里3)从工程中移除不是删除arccmt.cpp.beosea.cpp.coder.cpp.model.cpp.

利用def生成dll文件

DLL中导出函数的声明有两种方式:一种为在函数声明中加上__declspec(dllexport),这里不再举例说明:另外一种方式是采用模块定义(.def) 文件声明,.def文件为链接器提供了有关被链接程序的导出.属性及其他方面的信息.            首先创建 一个DLL程序,.cpp中int __stdcall Add(int numa, int numb){       return (numa + numb);} int __stdcall Sub(int numa, int n

.net 调用 Matlab生成dll出现的问题(The type initializer for &#39;MathWorks?.MATLAB.NE?T.Utility.?MWMCR&#39; threw an exception.)

https://cn.mathworks.com/matlabcentral/answers/278399-i-get-an-error-saying-the-type-initializer-for-mathworks-matlab-net-utility-mwmcr-threw-an-except 这篇文章帮忙解决了问题 记录一下备忘: Hi Nug, Ensure that you have the MCR version corresponding to MATLAB 2012b ins

生成dll文件的示例

看了好多网上写的关于dll文件生成和实用的资料发现多尔不全,都是抄来抄去,有的干脆就是搬用msdn上的原文,实在没有创意和可看的东西.于是本着学和实用的目的自己实践的东西分享给大家. 大前提:使用VS2010作为dll生成工具 概述:主要通过构建一个解决方案中的一个项目来演示如何定义和生成dll文件,在同一个方案中在创建一个项目主要用来进行生成dll的使用. 简易结构图: testdll(解决方案名) |--makedll(生成dll项目名) |--testdll(使用dll项目名) maked

用Qt生成dll类库及调用方法

空白工程新建DLL后,将DLL和LIB文件放入需要调用的"指定目录" 项目->属性->连接器->常规->附加库目录->添加"指定目录" 项目->属性->连接器->输入->附加依赖项->添加"LIB文件" 添加头文件到项目中,则DLL可用! VC6.0: 使一个项目编译生成DLL库而不生成可执行文件: 删除main()方法: 将.pro项目文件中的TEMPLATE = app改为TEMPL

WSDL生成dll

--生成代理类wsdl /l:cs /n:OAWebService /out:D:OAWebService.cs D:\OAWebService.WSDL--生成dllcsc /out:D:OAWebService.dll /T:library D:\OAWebService.cs

如何利用.snk文件生成DLL文件中的Publickeytoken

1.在该路径下C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin查找是否有sn.exe. 没有的话,从网上下载,注意需要的版本. 2.打开cmd命令板,进入该路径. 3.输入命令sn.exe -k 文件路径\文件名.snk,提示写入成功信息,进入路径确认是否生成指定.snk文件. PS:该文件为私钥文件 4.输入命令sn.exe -p 私钥文件 要生成公钥文件路径 5.输入命令sn.exe -tp 公钥文件路径,查看公钥和Publick