生成读取相关连接的物理地址的lib(动态导入库)和dll(动态链接库)

一、导出相关dll库

将原先的CmdInfoToPipe.h class后加入关键字 __declspec(dllexport)

 1 #ifndef NETINFO_CMDINFOTOPIPE_H_
 2 #define NETINFO_CMDINFOTOPIPE_H_
 3 #include <windows.h>
 4 #include <stdio.h>
 5 #include <string>
 6 #include <vector>
 7
 8 class __declspec(dllexport) CmdInfoToPipe
 9 {
10 public:
11     CmdInfoToPipe();
12     ~CmdInfoToPipe();
13     DWORD getCmdInfo(char *cmd);
14     std::vector<std::string> get_Mac_Address(std::string strconnect = "本地连接", std::string straddress = "物理地址");
15 private:
16     std::string strcmd_;
17     std::string cmd_;
18 };
19 #endif//CmdInfoToPipe.h

1. 出现宽字符编译问题,设置properties->general->character set->use multi-byte character set

2. 导出相应的库,设置properties->general->configuration type->dynamic libaray(.dll)

3. 编译生成,即在Debug文件夹中生成相关文件

4. 未解决问题:还有两个warning:关于两个成员变量的

二、测试相关的dll库

测试代码类似

1.添加相应的环境变量。

2.在测试项目中的properties->VC++ Directories添加相应的include和lib Directories

3.在测试项目中的properties->C/C++->general->additional include directories添加相应的include Directories

4.在测试项目中的properties->Linker->general->additional libaraydirectories添加相应的libDirectories

5.在测试项目中的properties->Linker->Input->additional Dependencies添加相应的lib

时间: 2025-01-03 22:36:07

生成读取相关连接的物理地址的lib(动态导入库)和dll(动态链接库)的相关文章

读取相关连接的物理地址

利用上次的匿名管道就可以读取cmd命令的相关信息 将其写成类CmdInfoToPile CmdInfoToPipe.h 1 #ifndef NETINFO_CMDINFOTOPIPE_H_ 2 #define NETINFO_CMDINFOTOPIPE_H_ 3 #include <windows.h> 4 #include <stdio.h> 5 #include <string> 6 #include <vector> 7 8 class CmdInfo

.h头文件 .lib库文件 .dll动态链接库文件关系

.h头文件是编译时必须的,lib是链接时需要的,dll是运行时需要的. 附加依赖项的是.lib不是.dll,若生成了DLL,则肯定也生成 LIB文件.如果要完成源代码的编译和链接,有头文件和lib就够了.如果也使动态连接的程序运行起来,有dll就够了.在开发和调试阶段,当然最好都有. .h .lib .dll三者的关系是: H文件作用是:声明函数接口 DLL文件作用是: 函数可执行代码 当我们在自己的程序中引用了一个H文件里的函数,编链器怎么知道该调用哪个DLL文件呢?这就是LIB文件的作用:

[渣译文] 使用 MVC 5 的 EF6 Code First 入门 系列:为ASP.NET MVC应用程序读取相关数据

这是微软官方教程Getting Started with Entity Framework 6 Code First using MVC 5 系列的翻译,这里是第六篇:为ASP.NET MVC应用程序读取相关数据 原文:Reading Related Data with the Entity Framework in an ASP.NET MVC Application 译文版权所有,谢绝全文转载--但您可以在您的网站上添加到该教程的链接. 在之前的教程中您已经完成了学校数据模型.在本教程中你将

命令行方式使用abator.jar生成ibatis相关代码和sql语句xml文件

最近接手一个老项目,使用的是数据库是sql server 2008,框架是springmvc + spring + ibatis,老项目是使用abator插件生成的相关代码,现在需要增加新功能,要添加几张新表,可以目前网上下载的abator插件,在新版的eclippse EE中UI根本打不开,只有使用命令行方式来生成相关代码,将下载的abator插件解压出来,提取其中的abator.jar文件即可,其他的文件不需要.abator的配置文件如下: <?xml version="1.0&quo

Win7下生成SSH Key连接Github--(MsysGit)

ls -al ~/.ssh # Lists the files in your .ssh directory, if they exist We strongly recommend using an SSH connection when interacting with GitHub. SSH keys are a way to identify trusted computers, without involving passwords. The steps below will walk

动态链接库dll,导入库lib,静态链接库lib

目前以lib后缀的库有两种,一种为静态链接库(Static Libary,以下简称“静态库”),另一种为动态连接库(DLL,以下简称“动态库”)的导入库(Import Libary,以下简称“导入库”).  静态库是一个或者多个obj文件的打包,所以有人干脆把从obj文件生成lib的过程称为Archive,即合并到一起.比如你链接一个静态库,如果其中有错,它会准确的找到是哪个obj有错,即静态lib只是壳子.  动态库一般会有对应的导入库,方便程序静态载入动态链接库,否则你可能就需要自己Load

.h头文件、 .lib库文件、 .dll动态链接库文件之间的关系(转)

h头文件作用:声明函数接口 dll动态链接库作用:含有函数的可执行代码 lib库有两种: (1)静态链接库(Static Libary,以下简称“静态库”) (2)动态连接库(DLL,以下简称“动态库”)的导入库(Import Libary,以下简称“导入库”) 两者的区别: 实质是不一样的东西. 静态库本身就包含了实际执行代码.符号表等等,而对于导入库而言,其实际的执行代码位于动态库中,导入库只包含了地址符号表等,确保程序找到对应函数的一些基本地址信息. 如:当我们在自己的程序中引用了一个h头

C语言的动态函数库和静态函数库的生成和使用(linux环境下)

软件开发往往是一个十分庞大的工程.需要消耗大量的脑力.借助别人已经开发好的库,往往能提高效率,下面将介绍如何开发和使用共享的库文件.使用别人已经开发好的库,就像是我们想要建造一辆汽车十分困难,但是如果汽车的各大部件都已经存在并且可以获得,我们要做的工作就是组装,组装过程一定比设计这些部件要轻松. 函数库分为两种静态(static)函数库和动态(shared)函数库.两者都是函数的集合.区别:在编译的时候会把静态函数库的内容加到目标程序中,目标程序具有函数库的代码;而动态函数库是在执行的时候才把函

C#生成高清缩略图 (装在自OPEN经验库)

来源 http://www.open-open.com/lib/view/open1389943861320.html 代码如下实现图片的高清缩略图 /// <summary> /// 为图片生成缩略图 /// </summary> /// <param name="phyPath">原图片的路径</param> /// <param name="width">缩略图宽</param> ///