Windows中的库编程
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内核调试?
- stdout – 使用Windows Script Host捕获WshShell.Exec的输出
- 使用Transactional NTFS的替代方法
- windows – 进程内存的图形可视化
- iis – 允许匿名上传到Windows 7 FTP服务器
- wpf – 为什么Blend 2012不允许我创建非Windows商店项目?
- Windows安装Python环境和Python集成开发环境(IDE)PyCharm
- Windows Server 2012:安装IIS、FTP服务
- Windows BAT 命令下del 与 rd 命令
- windows-phone-7 – Windows推送通知服务 – 如何获得证书?