只有dll的情况下如何动态调用里面的类成员函数
2016-11-08 11:47
411 查看
因为项目的需求需要在后台接口中调用项目方提供的dll加解密库,根据已知信息不知道dll里面封装使用了什么算法所以只能硬生生的调用dll里面的函数来进行加解密,如果后台接口使用java编写的话可以通过直接加载dll库通过jna的方式来进行调用,但是加解密函数是一个C写的类成员函数,意思是说必须先实例化一个类才能调用里面的加解密函数,但是java通过jna方式的话不能调用dll中的类成员函数,只能调用外部函数,如果通过jni的方式来调用C++,然后C++来调用dll的话,C++必须采用静态链接dll才行,意思是必须具备dll文件、.lib文件以及.h申明文件三者不可缺一,但是项目需求的话只提供了dll文件,所以这种方式也不行,最终通过千辛万苦搜集资料查找发现可以在vb中通过svr32注册dll的方式来直接引用里面的CEncrypt类,然后实例化一个类后就可以调用里面的加解密函数了,然后再把vb中调用dll的函数再封装成dll(切记vb在封装dll的时候会访问注册表,所以必须以管理员权限运行vb环境,否则会生成失败,就算成功后台也没法直接引用)供后台去直接调用,如果后台接口用C#写的话可以直接以引用的方式添加刚才封装的dll,我试过如果不通过vb封装做转接直接引用那个最原始的dll的话会引用失败。
相关文章推荐
- DLL调用失败,如何发现和调用DLL里面的函数
- 关于如何在不使用虚函数的情况下父类调用子类成员函数的问题
- DLL动态加载时调用类成员函数小结
- 如何通过动态sql远程调用包里面的函数,并返回值。
- 静态成员函数如何调用非静态成员变量(函数参数不能任意扩展的情况)
- 在ActiveX控件中如何动态调用DLL函数之"准"一体化方法
- 动态调用DLL里面的属性和函数
- 如何在托管程序中动态加载dll并且调用其中的函数
- 如何动态保存不同类的对象的成员函数的地址?--解决(续)
- 请指教:prototype.js ajax里面onSuccess 里面调用 公有成员函数的问题
- 通过GetProcAddress函数动态调用dll中地函数,是否必须通过extern C声明导出函数?
- 如何动态保存不同类的对象的成员函数的地址?--解决
- 在 C# 中动态调用 native dll 的导出函数
- 如何动态保存不同类的对象的成员函数的地址?--解决
- 如何在C语言中调用C++编写的DLL中的函数
- vb.net一种简单的方法动态调用标准dll中函数
- 动态调用 DLL 中的函数
- 如何在Delphi中调用.Net编写的DLL中的函数(Function)、过程(Procedure)
- vb动态加载dll的一个类,实现vb动态加载dll并动态调用dll导出的函数的一个方便办法
- [原创]如何在Delphi中调用.Net编写的DLL中的函数(Function)、过程(Procedure)