文档章节

C/C++ 调用DLL

t
 tigerBin
发布于 2017/04/29 15:24
字数 170
阅读 220
收藏 0
//dllExport.c

__declspec(dllexport)
int Add(int a, int b)
{
	return a + b;
}

//Visual Studio 2015 本机工具命令提示符:
//command:  cl /LDd dllExport.c

方法一: 

//dllImport.c

#include <stdio.h>

__declspec(dllimport) int Add(int a, int b);

int main()
{
	int ret = Add(10, 20);
	printf("%d\n", ret);
	return 0;
}

//Visual Studio 2015 本机工具命令提示符
//command:  cl /c dllImport.c
//command:  link dllImport.obj dllExport.lib
//command:  dllImport.exe
//output :  30

方法二:

//dllImport.c

#include <windows.h>
#include <stdio.h>

typedef int (*Func)(int, int);

int main()
{
	Func func;

	//Load DLL
	HINSTANCE hInstance = LoadLibrary("dllExport.dll");
	if (hInstance == NULL)
	{
		printf("Error: unable to load DLL\n");
		return 1;
	}

	//Get function address
	func = (Func)GetProcAddress(hInstance, "Add");
	if (func == NULL)
	{
		printf("Error: unable to find DLL function\n");
		FreeLibrary(hInstance);
		return 1;
	}

	//Call function
	int ret = func(10,20);

	//Unload DLL file
	FreeLibrary(hInstance);

	//Display result;
	printf("Result = %d\n", ret);
	return 0;
}

//command: cl dllImport.c
//command: dllImport.exe
//output: Result = 30

 

© 著作权归作者所有

t
粉丝 1
博文 66
码字总数 17693
作品 0
武汉
程序员
私信 提问
dll的概念 dll导出变量 函数 类 (转)

1、 DLL的概念 DLL(Dynamic Linkable Library),动态链接库,可以向程序提供一些函数、变量或类。这些可以直接拿来使用。 静态链接库与动态链接库的区别: (1)静态链接库与动态链接库都是共...

长平狐
2012/10/08
685
0
C++ 的 C 方式编译和 C 链接约定

原文:C++ 的 C 编译和链接方式 (VC) 作者:Breaker C++ 与 C 的编译方式 所有的 C 程序都是 C++ 程序,而所有的 C++ 编译器都是 C 编译器(几乎所有),兼容 C99 标准 wiki: C99。一些编译器...

晨曦之光
2012/05/23
952
0
内存泄露:a CDynLinkLibrary object at...的解决

这两天在设计一个项目,独立了几个DLL模块。昨天勉强把前段工作做完了,需要的DLL也都挂进了EXE文件之中,暗自高兴了一把。不过晚上在看的时候,发现VS2005输出窗口提示有内存泄露: a CDyn...

郭廷钧
2011/01/29
0
0
关于windows dll的生成

关于windows dll的生成 今天上午看到VC板上有人提到dll调用约定的问题,发现自己一直以来只是网上说的文章去做的,具体的实验还真的没有做过。中午闲来无聊,写了几个小例子,测试一下windo...

KavenSu
2014/01/16
0
0
VC++动态链接库(DLL)编程[精]

1.概论   先来阐述一下DLL(Dynamic Linkable Library)的概念,你可以简单的把DLL看成一种仓库,它提供给你一些可以直接拿来用的变量、函数或类。在仓库的发展史上经历了“无库-静态链接库...

barsoom
2012/12/07
0
1

没有更多内容

加载失败,请刷新页面

加载更多

C# 视频多人脸识别的实现过程

整个项目是用虹软技术完成开发 上一篇内容的调整,提交到git了,https://github.com/catzhou2002/ArcFaceDemo 基本思路如下: 一、识别线程 1.获取当前图片 2.识别当前图片的人脸位置,并将结...

是哇兴哥棒棒哒
29分钟前
1
0
Spring Cloud Eureka 你还在让它裸奔吗??

前些天栈长在微信公众号Java技术栈分享了 Spring Cloud Eureka 最新版 实现注册中心的实战教程:Spring Cloud Eureka 注册中心集群搭建,Greenwich 最新版!,成功进入 Eureka 控制台页面。 ...

Java技术栈
46分钟前
1
0
linux gyp ERR! stack Error: EACCES: permission denied, mkdir ‘xxx’

在使用linux npm install的出现这个错误了,百度了下,没有权限加个参数即可 npm install --unsafe-perm

朝如青丝暮成雪
47分钟前
2
0
使用kubeadm 搭建K8s集群

1. 参考官网 https://kubernetes.io/docs/setup/independent/install-kubeadm/ 2. 初始化master节点 (1)kubeadm init --kubernetes-version=$(hostname -i) --kubernetes-version=v1.14.1......

whhbb
今天
3
0
Dubbo 3.0 !提升不止一点点!

Dubbo 自 2011 年 10 月 27 日开源后,已被许多非阿里系的公司使用,其中既有当当网、网易考拉等互联网公司,也不乏中国人寿、青岛海尔等大型传统企业。 自去年 12 月开始,Dubbo 3.0 便已正...

编程SHA
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部