vs2017生成的动态库的问题? 10C

刚接触vs,写了个简单的测试的例子,发现生成的动态库没有入参
.cpp
#include "TestDLL.h"

int init(const int a, const int b)
{
return a + b;
}


.h
#pragma once

extern "C" declspec(dllexport) int __init(const int a, const int b);


使用dumpbin查看动态库,内容如下:

图片说明

为什么没有入参呢?不是应该是这样的吗?

ordinal hint RVA name
1 0 00001000 sum = @ILT+140(sum)

0

5个回答

函数名是不是不一样啊,一个带__一个没带

0
weixin_42760875
0DF0Arc 这个是手误,其实是一样的
大约一年之前 回复

.cpp
#include "TestDLL.h"

extern "C" declspec(dllexport) int __init(const int a, const int b)
{
return a + b;
}

0
weixin_42760875
0DF0Arc 试过了,还是不行。会不会是vs要做什么设置
大约一年之前 回复

.h
#ifndef TEST_DLL_H
#define TEST_DLL_H

extern "C" __declspec(dllexport) int MyAdd(const int a, const int b);

#endif

.cpp
#include "TestDLL.h"

extern "C" __declspec(dllexport) int MyAdd(const int a, const int b)
{
return a+b;
}

试试这个

0

不知道算不算原因,debug模式的是有@ITL的,release没有,不太明白为什么。

0

你发布动态库时候,加了def文件声明函数没有?
如果没加def文件声明,那么函数在调用时候有别名的,比如你说的加了一个@类似的,这样就无法进行加载。

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
VS2017生成动态库.dll和静态库.lib及其调用
【1】打开VS2017,新建动态链接库(DLL) 【2】新建头文件--标头.h(名字随意) 头文件中先不用写内容。 【3】新建源文件--源.cpp(名字随意) 类似于新建头文件的方法,新建源文件 3.1 包含头文件 #include "stdafx.h" #include "标头.h" 3.2 自定义函数 int funAdd(int a, int b) {     re...
VS2017创建动态库
这是本人原创,转载需要说明出处 https://blog.csdn.net/Oyasimi1412/article/details/82257575 工具vs2017      创建动态库DLL给第三方使用 步骤: 1,文件 - >新建 - >项目,出现弹框如下: 选择Windows桌面 - > windows桌面向导 接着是这个界面: 选择动态链接库,空...
VS2017动态链接库(.dll)的生成与使用
这里以VS2017为例子,讲解一下动态链接库(.dll)的生成与使用。 一、动态链接库(.dll)的生成 1、打开:“文件”-“新建”-“项目” 2、打开:“已安装”-“模板”-“Visual C++”-“Win32”-“Win32 控制台应用程序”      把文件“名称”加上,为自己的工程名称;把“位置”加上,为自己的工程所在位置; 3、点击:“下一步” 4、选择“DLL”和“
VS2017 创建动态链接库并使用
下面我们直接步入正题。 1.首先在VS2017中新建Dll项目。 2.组织你的项目工程目录如下: 3.其中,MyDll.h文件中的代码为: #pragma once #ifdef MY_DLL_EXPORTS # define MY_DLL_EXP __declspec(dllexport) #else # define MY_DLL_EXP __declspec(dllimport...
VS2017 DLL动静态库使用教程【一】创建一个DLL
考虑两个问题: 1,printf是我们用过很多次的函数,但这个函数定义在哪里?他只有<stdio.h>一个声明。 2,你发明一个有价值的算法,需要给别人使用,又不想开放源码。 在c++里,使用库的技术,可以将编译好的代码提供给第其他程序员,保证代码的隐私性, 库为两种: 1,动态库 Dynamic Link Library (DLL) 2,静态库 static librar...
VS2017创建DLL动态库------C#调用
VS2017创建DLL动态库------C#调用 1.VS2017新建项目:点击项目进入第二步。 2.项目与路径:点确定就OK了。 3.进入界面后:右键头文件---》添加---》新建项 3.1添加头文件  3.2写我们的接口函数    3.3写头文件    3.4添加def文件  3.5写def文件
vs2017下创建使用动态库。
动态库又称为动态链接库,DLL(Dynamic Link Library)的缩写形式。 动态库是一个包含可由多个程序同时使用的代码和数据的库。 在vs2017创建并使用动态库 1,创建项目 2,在头文件处新建自己的头文件 选中头文件 按Ctrl+Shift+A创建新建项 在add.h中加入一些代码 #pragma once和#ifndef...#endif 都...
VS2017 DLL动态库使用教程【四】使用头文件
如何让我们的dll程序也能像<stdio.h>一样让别人使用呢? 很简单,我们需要先新建两个文件。 其中mydll.cpp和mydll.h都是需要你在dll项目中新建的,如果你不知道怎么新建一个dll项目,请阅读本教程第一章。 建立完成后,我们首先写mydll.h,代码如下: #ifndef MYDLL_EXPORTS //条件编译指令,判断是否定义了 MYDLL_EX...
VS2017 DLL动态库使用教程【七】为什么我的程序不能在别人电脑运行
考虑一个很最最最简单的程序: #include <stdio.h> #include <Windows.h> int main() { printf("你好\n"); system("pause"); return 0; } 将其编译,得到一个*.exe文件。 在本地自然可以顺便运行,有时候你刚刚做完一个这样的练习,迫不及待地要向朋友炫耀一下。一脸淫笑的你...
qt5调用vs2017封装的动态库
https://www.cnblogs.com/seer/p/4789454.html
VS2017中托管C++程序调用托管C++生成的动态库,程序无法调试的问题
环境:windows10专业版,VS2017企业版 因为业务需要,需要同时整合VC动态库和C#动态库到一个程序中,主程序为VC程序。 技术点: 1、只能用托管C++作为主程序,因为无法用非托管C++程序调用托管C++动态库。 2、托管C++程序调用托管C++动态库时需要配置调试选择,否则程序无法调试。 VS2017调试选项配置如下: ...
VS2017创建DLL动态链接库方法
1.打开vs,点击文件-->新建-->项目。 2.选择C++下面的windows桌面,右边选择动态链接库(DLL)。新建成功之后,默认为x86平台。 按照你自己的需求更换平台,必须调用的和被调用的dll同为一个平台。 3.新建之后,在头文件中添加mydll.h,内容为: #define DLL_API extern "C" _declspec(dllexport) 4....
VS2017 DLL动态库使用教程【五】dll中使用导出一个类
#define MYDDLL _declspec(dllexport) #else #define MYDDLL _declspec(dllimport) #endif class MYDDLL myClsss { public: myClsss(int i); void print(); private: int value; }; 在头文件使用class MYDLL 类名字,即可。...
vs2017生成dll动态库供java调取
一、利用eclipse等编辑工具创建项目dllTest 二、在src下面创建com包,在com包下创建Test1.java,且代码内容如下图: package com; import com.sun.jna.Native; import com.sun.jna.win32.StdCallLibrary; public class Test1 { publ
[C/C++] VS2017编译libcurl静态库和动态库
打开 VS2013 x86 本机命令工具提示,进入libcurl目录winbuild cd D:\MyWork\cpp\third\curl-7.59.0\winbuild 执行命令 // release /MD版本 nmake /f Makefile.vc mode=static VC=12 // debug /MD版本 nmake /f Makefile.vc mode...
不同版本VS生成的动态库是否可以相互调用?
结论:只要.net framework版本一致VS2008和VS2017生成的DLL可以相互调用。 1.在VS2008中生成DLL文件 分别生成DEBUG模式的DLL和RELEASE模式的DLL。一般而言,DEBUG的DLL要比RELEASE的DLL所占空间要大。 同样的程序功能,RELEASE版的大小是18kb,而DEBUG版的大小是91kb。这是因为DEBUG模式中没有对程序进行优化
vs2017封装和引入动态链接库的源码
在VS2017环境下,开始写自己的第一个DLL(动态链接库)
Visual Studio 2017 生成dll时无法解析的外部符号 main问题
作为一个JNI新手,今天在第一次生成dll文件时发现了一个奇怪的问题,就是出现了如下所示的错误:  MSVCRTD.lib(exe_main.obj) : error LNK2019: 无法解析的外部符号 main,该符号在函数 "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ) 中被引用  在度娘经过多方查找,有人前辈给出的方案是去
VS生成动态链接库设置不依赖vs自带库
Release版本设置 Debug版本设置
用VS2017 15.9.3版本编写C++动态链接库 和 python调用dll
1. 创建.dll文件 首先建立动态链接库项目 在VS创建的.cpp文件中编写你的C++代码 并在开头加上以下代码 extern "C" _declspec(dllexport) int func_name(type1 parameter1 [, type2 parameter2 [, ...]]); 生成解决方案 (Ctrl + Shift + B) 然后就可以在项目文件夹中找到已经生成的 ...
vs-dll-lib动态静态链接库使用项目-包含vs项目配置文件直接编译使用即可学会
vs-dll-lib动态静态链接库使用项目-包含vs项目配置文件直接编译使用即可学会 这是一个完整的vs项目,一个解决方案,包含5个小项目。包含项目的全部配置文件,直接下载编译,轻松学会使用动态链接库dll与静态链接库lib mydll项目 生成dll mydlltest项目 隐式调用dll mydlltest2项目 显示调用dll mylib项目 生成静态链接库lib mylibtest项目 调用lib
VS2017下纯代码生成二维码,不需要动态库
完整的纯代码的二维码生成代码,不需要加载相关的动态库或插件
VS2017创建C++动态库(DLL)
方式一: 创建空的c++动态库 (1)创建Visual C++ —》空项目 (2)修改项目属性 将配置类型改为动态库(.dll),目标文件扩展名改为(.dll),另外注意平台的一致性32位、64位 (3)添加MyDLL.h文件和MyDLL.cpp文件 MyDLL.h文件代码如下: MyDLL.h文件代码如下: 方式二: (1)Visual C++ —》Window...
VS2017 DLL动态库使用教程【三】动态内存管理
在dll内的malloc内存,必须在dll内free。否则就会出现问题。 比如: DLL文件: #include <stdint.h> #include <stdio.h> #include <stdlib.h> _declspec(dllexport) int* GetA(int size) //根据形参malloc出一个内存,并把它返回 { in...
VS2017的C++开发心得(八)DLL动态链接——Opencv的使用
上一篇对dll的链接使用进行了粗略介绍,这一篇就以Opencv为例子介绍下怎么使用第三方库来进行程序开发。Opencv是世界机器视觉领域非常著名的开源库,里面包含了大量的图形处理算法,变换算法,匹配算法,也包括现在流行的DNN深度学习网络应用。Opencv的强大更在于它的整个库对用Opencl和CUDA的支持非常好,同样的算法,你自己写的运行速度基本没法跟Opencv的运行速度比较。 首先去官网...
CMake设置生成vs工程的动态库输出路径
CMake设置生成vs工程的动态库输出路径
VS2015动态库编程之导出C++类(上)
基于Win32的动态库不但可以导出函数、变量,还可以导出类。在DLL文件中声明和定义类,在其他程序中调用该类即可。
vs2015跨平台linux开发so库例子
vs2015跨平台linux开发so库例子,http://www.cnblogs.com/jiftle/p/8401887.html
VS2017 DLL动态库使用教程【六】动态加载DLL
什么是动态加载? 之前我们都是用的是自动加载,他是在exe运行启动时,就加载dll。 动态加载,在编译的时候不指定dll,根据代码需要时调用LoadLibrary来加载dll。 而且动态加载可以根据程序需时卸载dll,自动加载只能程序结束卸载dll。 动态加载也叫手工加载。   如何使用动态加载? 首先我们对之前的dll文件做一个小改动,因为动态加载无需声明头文件(*.h),所以所以...
VS 编译生成dll、lib(动态链接库、静态链接库),并调用
版权声明:转载需标明该文链接。https://blog.csdn.net/zaibeijixing/article/details/83747377 本文用的是vs2017,vs主要功能基本一致,此方法多个版本都适用。 一、生成dll/lib 【01】创建新项目 【02】建立以下.h、.cpp文件,将功能程序写进来。 (1)在<make_dll.cpp>中,写入...
VS2017下DILL动态库的生成和使用
1、新建——项目——Windows桌面向导 2、应用程序类型选择动态链接库(.dill),并勾选空项目 步骤3:添加.h头文件和.c函数实现文件, 其中头文件中每个函数的声明墙边都要加上一句__declspec(dllexport) 其中头文件内容如下 #pragma once //兼容C++编译器 #ifdef __cplusplus extern "C" { #endif...
qt(装在VS2010中)如何生成和使用动态库
qt(装在VS2010中)如何生成和使用动态库
MATLAB生成动态链接库+VS调用库文件
MATLAB生成动态链接库+VS调用库文件
VS2017的C++开发心得(九)DLL动态链接——多项目开发
这一篇主要介绍在一个解决方案下如何进行多项目开发。 其实开发代码都放在一个项目下也可以实现它的功能,为什么要使用多项目开发?从编程架构上来讲,树状结构是最优秀的架构。树状结构越发散,它的维护任务就越轻松。这句话的意思是:我们在进行C++工程开发的时候对每一个cpp的功能进行清楚的分割,减少不同功能的cpp文件之间的耦合性,即便当系统非常庞大的时候,维护起来也很方便。说得简单点就是分类工作一开始就...
WIN10下使用VS2017的MSVC编译FFMPEG3.4.2动态静态库
之前在Win10下成功编译nginx给了我不少信心,这两天尝试在Win10下编译FFMPEG,没想到给捣鼓成功了,记录一下。首先下载MINGW,这个文章最后放我打包好的下载地址,直接将压缩包解压到C盘根目录下即可,即安装目录为C:\MinGW里面已经包含了编译FFMPEG所需要的工具。解压好后进到目录C:\MinGW\msys\1.0下,对msys.bat文件进行编辑第二行路径修改为你安装的VS2...
VS2015编译的log4cpp动态库
VS2015编译的log4cpp,内含库文件以及头文件,经VS2015实测OK
在VS2015中用C++创建MFC规则动态库DLL
在VS2015中用C++创建MFC规则动态库DLL
在VS2015中用C++创建动态库并用C#调用
在VS2015中用C++创建动态库并用C#调用
VS2017环境下动态链接库编写及调用
最近项目中有用到DLL,于是就去了解了一下动态链接库(DLL)以及基本的的编写方法。先来区分一下静态库和动态库: 静态库 window下是 .lib格式 linux下是 .a格式编译期引入到程序代码 -l 动态库 window下是 .dll格式 linux下是 .so格式运行时候进行链接 DLL(Dynamic Link Library)文件为动态链接库文件,又称“应用程序拓展”,是...
linux动态库生成
linux动态库生成,linux动态库生成,linux动态库生成,linux动态库生成,linux动态库生成