首页 > Windows开发 > 详细

Windows中的库编程

时间:2019-04-30 17:54:10      阅读:160      评论:0      收藏:0      [点我收藏+]

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++调用

隐式链接

 

Windows中的库编程

原文:https://www.cnblogs.com/zhaotianff/p/10797057.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!