加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

Windows中的库编程

发布时间:2020-12-14 02:09:31 所属栏目:Windows 来源:网络整理
导读:Windows操作系统中,库分为动态链接库(dll)和静态链接库(lib) ? 动态链接库(DLL Dynamic Linkable Library) DLL是Windows中实现代码共享的一种方式。它是一个二进制式文件,不可单独运行,需要调用方调用才能运行。在Windows中,DLL可以被多种编程语言所支持

Windows操作系统中,库分为动态链接库(dll)和静态链接库(lib)

?

动态链接库(DLL Dynamic Linkable Library)

DLL是Windows中实现代码共享的一种方式。它是一个二进制式文件,不可单独运行,需要调用方调用才能运行。在Windows中,DLL可以被多种编程语言所支持。

1、通过关键字_declspec(dllexport导出)

新建一个C++ dll工程 DllExportTest

新建一个DllExportTest..h文件

输入

1 #pragma once
2 
3 __declspec(dllexport) void PrintHelloWorld();

?

在DllExportTest.cpp中输入

 1 #include "stdafx.h"
 2 #include"DllExportTest..h"
 3 #include<iostream>
 4 
 5 using namespace std;
 6 
 7 void PrintHelloWorld()
 8 {
 9     cout << "HelloWorld" << endl;
10 }

2、通过模块定义文件导出

新建一个C++ dll工程 DllExportWithDEFTest

新建一个DllExportWithDEFTest.h,输入

1 #pragma once
2 
3 void PrintHelloWorld();

在DllExportWithDEFTest.cpp中输入

 1 #include "stdafx.h"
 2 #include"DllExportWithDEFTest.h"
 3 #include<iostream>
 4 
 5 using namespace std;
 6 
 7 void PrintHelloWorld()
 8 {
 9     cout << "HelloWorld" << endl;
10 }

然后在“源文件”上右键选择“添加新项”,选择“代码”->”模块定义文件(.def)“

.def常用格式如下

LIBRARY   DllName                  //dll名字,DllName可以为空
DESCRIPTION    DllDescription      //dll 描述 这一行可以省略
EXPORTS FuncOrVariables             //要导出的函数名或变量的名字

我在前面的代码中定义了PrintHelloWorld函数,要将它导出,可以这样定义.def文件

LIBRARY   
EXPORTS
PrintHelloWorld

如果要将PrintHelloWorld函数导出为其它的名字,如MyFuncName,可以这样定义.def文件

LIBRARY   
EXPORTS
MyFuncName = PrintHelloWorld

如何使用导出的函数

C#调用可以参考以下链接

https://www.cnblogs.com/zhaotianff/p/8991847.html

C++调用

隐式链接

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读