最近在写dll动态库,遇到好多问题。这边分享下解决的方法。
dll动态库一般有两种加载方式,第一种是直接加载DLL文件,第二种是直接加载LIB文件。
什么都不说,直接上代码,程序员自己最好的交流就是代码。
第一种DLL加载方式:
在.h文件中接口定义为:
接口实现.cpp文件实现如下
测试demo调用方法:首先加载dll
如果dll加载成功,但是获取接口问空时可以用GetLastError去获取错误代码,可以找到因为什么而导致的错误。
用Depend工具查看dll定义的输出接口名字,看下名称是否相同。
在生成dll的工程中必须定义.def文件,把对外接口定义在里面。如下图所示
我就遇到了未写def文件而导致一直找到接口函数的问题。
然后就是使用定义的函数指针进行函数调用了,如图所示
第二种Lib文件调用方式:
接口定义.h文件定义如下:
接口实现的cpp文件跟上边类似,相信都会。这边就不截图了。
LIB文件调用就不需要定义def文件了。直接加载lib文件就ok
//#pragma comment(lib,"SignHotel.lib")
首先的把相应的lib文件考到工程目录下。
调用的时候就更加简单了,直接可以用定义的函数。
如下所示://ShowClientInfo(data2,data1,data3);
这种lib调用是不是很简单。