关闭

c++ 动态DLL编写和使用

185人阅读 评论(0) 收藏 举报
分类:

1 动态DLL就是在程序的运行过程中加载的。创建DLL的过程就是选择创建一个win32项目,然后选择创建DLL工程。

 在使用的时候我们一般需要创建一个.h文件,在.h文件中提供所有对的外函数的接口,然后在DLL的主cpp中包含这个.h文件就可以。


2 DLL代码实例:

 //.h文件

  

#pragma once

#define DLL_EXPORT __declspec(dllexport)

 extern "C" 
{
  DLL_EXPORT int Add(int x,int y);

  DLL_EXPORT int Sub(int x,int y);

 }

//.cpp文件

#include "stdafx.h"
#include "SkCom3.h"
#include "ClassA.h"


int Add(int x,int y)
{
	ClassA A;
	A.showMess();
	return x+y;
}


int Sub(int x,int y)
{
	ClassA A;
	A.showMess();
	return x-y;
}


//使用DLL的过程,

 如果DLL和使用DLL的工程在同一个解决方案中的话,我们可以使用添加依赖项,这样子在编译的时候会把DLL文件一起编译

#include "stdafx.h"
#include<iostream>
#include<wtypes.h>

using namespace std;

typedef int (*MyAdd)(int,int);

MyAdd adds;
int _tmain(int argc, _TCHAR* argv[])
{
	HMODULE hinst;
	hinst = LoadLibrary(L"SKCom3.dll");

	if(hinst)
	{
		adds= (MyAdd)GetProcAddress(hinst,"Add");
		cout<<adds(3,5);
	}
	system("pause");
	return 0;
}





0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

在VS2015中用C++编写可被其它语言调用的动态库DLL

在VS2015中用C++编写可被其它语言调用的动态库DLL
  • songyi160
  • songyi160
  • 2016-02-27 14:12
  • 17104

VS2010编写动态链接库DLL及单元测试用例,调用DLL测试正确性

本文将创建一个简单的动态链接库,并编写一个应用台控制程序使用该动态链接库,该动态链接库为“JAVA调用动态链接库DLL之JNative学习”中使用的DLL,只是项目及文件名称不同。创建动态链接库项目:...
  • testcs_dn
  • testcs_dn
  • 2014-05-27 22:46
  • 24711

VS2017动态链接库(.dll)的生成与使用

这里以VS2017为例子,讲解一下动态链接库(.dll)的生成与使用。 一、动态链接库(.dll)的生成 1、打开:“文件”-“新建”-“项目” 2、打开:“已安装”-“模板”-“Visual C++...
  • m0_37170593
  • m0_37170593
  • 2017-07-31 19:39
  • 6984

PB8调用使用C++与C#分别编写生成解压缩带有密码的zip压缩文件的动态链接库dll(部分内容转自互联网)

本文章编写的原因,是由于zlib无法解压缩由ICSharpCode.SharpZipLib.dll压缩的文件对作者的项目造成了困难,于是结合网上关于这方面的资料整理了这篇文章,希望对大家有所帮助,减少...
  • kennyzjk
  • kennyzjk
  • 2015-05-16 17:50
  • 1018

一个好用的C++编写的websocket服务端dll动态库

  • 2017-05-11 17:34
  • 374KB
  • 下载

C#动态调用C++编写的DLL函数

C#动态调用C++编写的DLL函数 动态加载DLL需要使用Windows API函数:LoadLibrary、GetProcAddress以及FreeLibrary。我们可以使用DllImport在...
  • nanchang519
  • nanchang519
  • 2015-10-28 11:33
  • 135

JNI技术之Java调用C/C++编写的第三方dll-动态链接库

Java调用C/C++编写的第三方dll动态链接库 JNI(Java Native Interface)简称JNI,是中文为JAVA本地调用。从Java1.1开始,Java Native...
  • zolalad
  • zolalad
  • 2014-07-22 16:16
  • 1536

Java调用C/C++编写的第三方dll动态链接库(非native API)--- JNI

注:2013年6月6日,我对该博文进行了修改,增加了源代码以及更直观详细的讲解。如果需要代码,可以到文章最后给出的链接进行下载。   最近在用weka做一个数据挖掘相关的项目,不得不说,w...
  • longtingjing
  • longtingjing
  • 2015-03-19 13:32
  • 543

C++编写动态库.so或者.dll的陷阱

一、接口不变就可以不需要重新编译? 对于很多库的实现者可能会有这样的认识“接口不变就可以不需要重新编译”,其实这句话是有前提的,前提是实现的动态库有足够的兼容性和鲁棒性。尤其是C++实现的动态库,C...
  • lp525110627
  • lp525110627
  • 2016-11-27 12:02
  • 450

java中调用C/C++编写的生成的动态连接库dll文件接口的简单例子

1、首先用java编写一个简单类 public class Hello { public native void sayHello(); static { System.loadLibrar...
  • hongya1109110121
  • hongya1109110121
  • 2014-03-05 17:44
  • 2116
    个人资料
    • 访问:14742次
    • 积分:526
    • 等级:
    • 排名:千里之外
    • 原创:38篇
    • 转载:1篇
    • 译文:0篇
    • 评论:1条