首页
学习
活动
专区
圈层
工具
发布

java怎样调用DLL方法

前段时间项目需要使用调用DLL来控制POS机外设,如钱箱和小票打印机、顾客显示屏等,于是,我便开始了java调用DLL中的方法的探索,事实上,网上的例子还是很多的,一些外部包的例子也有很多,但每个人的实际情况都有所不同...,尽管只是一个很简单的调用,也花了我不少时间,在这里分享一下我的经验吧。    ...这两项准备工作完成后,就可以开始尝试调用了。    ...失败"); } } } 这样就可以获得DLL文件的句柄了,那怎样调用里面的方法呢?...如果方法dll中的方法是空参数时,直接call一下就可以了,如 Dispatch.call(printObj,"setDefaultFont"); 而调用有参数的方法时,则需要将参数在后面依次传入,注意按顺序噢

4.1K20

实现用VB.Net(C#)开发K3 BOS 插件的真正可行方法

,其中缘由不言而喻,而本文则是个人首创,实现在了用VB.NET 或C# C++.Net来开发BOS的插件(DLL),如果哪位还有比这方法更早的请联系作者,修改首创的宣称 在此先讲几个概念性的问题: 1、...   Net类组件与COM组件:VB6开发的ActiveX.dll 可以用regsvr32.exe 注册,它是适合COM规范的东西,.NET开发的类后缀也是dll,可是它们俩不是相同的东西,.NET(VB...VB6调用符合COM规范的DLL,它的原理就是在原程序里(宿主)先导入放在BOS插件上的dll然后直接Byref调用Public Sub Show(Byval XXX as Object) 来把需要编程的对象传递过来...,所以我们要VB6能调用.Net的dll,那怎么办呢?...2、   .NET中的强名strong name 说白了就是为了保护你的组件不被破坏,.Net开发的dll想给像com那样被调用那就必须加个强名(数字签名) ’---------------------

1.8K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    鱼叉钓鱼攻击中DarkCloud窃密木马的技术剖析与防御对策

    DarkCloud并非首次出现,但其v3.2版本通过从.NET迁移至Visual Basic 6(VB6)重构,显著提升了反分析能力。...值得注意的是,该样本为VB6编译产物,其入口点调用Main子过程,而非典型的Win32 WinMain,这在一定程度上规避了基于API调用序列的静态检测规则。...3 DarkCloud v3.2技术特征分析3.1 VB6重构带来的检测挑战DarkCloud从早期.NET版本迁移到VB6,主要出于以下考量:反编译难度高:.NET程序集可通过ILSpy、dnSpy等工具近乎完美还原源码...调试器兼容性差:主流调试器(如x64dbg)对VB6运行时(msvbvm60.dll)的支持有限,断点设置与变量监视困难。...行为特征模糊:VB6程序大量调用rtc系列运行时函数(如rtcRandomize、rtcStringBstr),其API调用图与合法VB6应用高度相似,难以通过行为异常识别。

    25810

    Spring杂谈 | 从桥接方法到JVM方法调用

    ,编译器会自动为我生成桥接方法,因为编译的后文件是交由JVM执行的,生成的这个桥接方法肯定就是为了JVM进行方法调用时服务的,我们不妨大胆猜测,在这种情况下,是因为JVM在进行方法调用时,没有办法满足我们的运行时多态...要弄清楚这个问题,我们还是要从JVM的方法调用说起。 JVM是怎么调用方法的? 我们应该知道,JVM要执行一个方法时必定需要先找到那个方法,对计算机而言,就是要定位到方法所在的内存地址。...因为目前我们关注的是方法的调用,所以对class文件的具体结构我们就不做过多分析了,我们主要就看看常量池跟方法表。...} } /** * @author 程序员DMZ * @Date Create in 21:03 2020/6/7 * @Blog https://daimingzhi.blog.csdn.net...桥接方法到底桥接的什么?其实就是编译器对JVM到JAVA的一个桥接,编译器为了满足JAVA的重写的语义,生成了一个方法描述符与父类一致的方法,然后又调用了真实的我们定义的逻辑。

    1.9K20

    在C++中反射调用.NET(一) 反射调用第一个.NET类的方法

    为什么要在C++中调用.NET 一般情况下,我们常常会在.NET程序中调用C/C++的程序,使用P/Invoke方式进行调用,在编写代码代码的时候,首先要导入DLL文件,然后在根据C/C++的头文件编写特殊的...) 然而,为了保持C++与.NET应用程序的独立性,要求不能将.NET的DLL文件放到C++的应用程序目录下,因此上述步骤1不可行,需要在C++代码中使用反射来调用.NET。...我们先在NetLib项目写一个简单的.NET 类,这个类的方法内部没有复杂的业务逻辑代码,仅仅用来供反射调用测试: namespace NetLib { public class User...在C++/CLI中使用反射 反射调用第一个.NET类的方法 下面的方法,将会反射调用 User类的一个最简单的方法 : public int GetUserID(string IdString){} 该方法只有一个一个参数和一个简单的返回值...有了这2个简单的方法,我们来看看如何调用这个.NET方法“代理类”: NetLibProxy::UserProxy^ proxy = gcnew NetLibProxy::UserProxy("

    4.6K100

    从Slideshare.net 下载Slide的方法:

    从Slideshare.net 下载Slide的方法     Slideshare.net上有很多不错的Slide都没有提供下载链接,平常倒也无所谓,都是收藏后直接在线观看的。    ...这段时间对ZARA的商业模式很感兴趣,相关的文档较少,刚好在Slideshare上有几个关于ZARA不错的Slides,而且都没有提供下载,需要保存到本地以供好好研究,于是研究了一下从Slideshare...下载Slide的方法。...Slideshare PPT下载shell脚本     以前总结过在slideshare上下载文件的方法(参考:从Slideshare.net 下载Slide的方法) ,只不过以上下载操作都需要手工操作...只不过原理应该也是类似的,看一下冰点文库下载器目录下的SWFToImage.DLL、pdflib.dll两个动态库大致可以知道。

    12.7K31

    .net core高吞吐远程方法如何调用组件XRPC详解

    前言XRPC的目标非常明确,就是给.net core平台实现一个百万级别的远程方法调用RPC通讯组件。...二进制处理并没有像GPRC一样使 Protobuf,而是使用了在.net core平台下相对更高效的组件MessagePack。...XRPC的设计是尽量在最少连接情况发挥更高效的网络处理能力,这样就可以把N个请求的数据复用在一个IO上,而从让网络利用率大大提升。...,这个代理是线程安全的,正常情况只需要创建一个静态成员即可;创建接口后只需要调用相关方法即可完成远程方法的调用。...基础性能组件设计的性能目标是百万级别RPS的远程方法调用,不过在一台4核物机作为服务测试并没有达到这个目标,不过测试结果还算比较理想,在以上示例代码Login方法,采用500个并发模拟的情况RPS达到将近

    1K50

    .NET连接SAP系统专题:sapnco.dll在ASP.NET中载入失败的解决方法(九)

    当所有一切代码准备就绪之后,如果是ASP.NET那就是要发布网站到服务器了。...如果服务器上的系统是WIN2003,那很不幸,系统会提示这样的“红脸”过来: 意思是说sapnco_utils.dll和sapnco.dll这两个文件不能载入。...网上查找了方法也不尽然,各说纷纭。但是在WIN2008下的IIS7跟WinXP下的IIS5.1都可以完全正常,但是这个WIN2003就不行。...后来在对这两个DLL进行分析的时候发现它们是用VC++2005开发的,想到WIN2003系统可能没有必要的运行库。于是在工作站测试的时候安装了VC++2005 32bit版,然后刷新一切就正常了!...解决方法:安装相应vc++2005运行库即可!(实践证明:VC++2008不行!)

    2.1K20

    COM, COM+ and .NET 程序集的区别

    因此客户端可以调用的编译过的黑盒类库就叫作组件。   .Net中也同样为开发者提供了类似于COM的建立和展开组件的方法。...quot;DLL地狱"。这个问题在一个DLL要被一个新版本的DLL所取代时引发。开发者不得不通过关闭所有的客户应用程序的方法(如果不行,还要关闭WWW服务)来达到清除所用对这个组件的引用的目的。...有时所有的方法都还起不了作用,那你只好重新启动服务器后才能替换掉老的DLL。 COM+   为了让企业级的应用程序能使用上COM,它必需要有以下的特定的能力。   ...建立一个.Net assembly并不像建立一个VB6组件,唯一让开发者操心的就是商业逻辑,所有的后台代码全部由.Net运行期产生,而且由于.NET运行期具有碎片收集器的功能,组件不必担心它的引用数目(...由COM+提供的服务不能被忽略,所以把.NET assemblies封装成COM组件就变得相当重要了。作为一种选择,开发者可以从.NET基础类库中选择更多的功能。

    1.2K00

    系统架构师论文-基于构件的软件开发(在线学习支持服务平台)

    由于我校现有的各级软件系统都是基于微软Windows系列平台,因此我们确定使用微软的COM组件技术来开发该平台,并介绍了该平台所使用的几种COM组件,主要采用VB6语言编写’通用模块并生成DLL文件及注册成为...因此,结合我校的实际情况,我校现有的各级软件系统都是基于微软Windows系列平台,且开发人员対COM组件技术也较熟悉,対开发语言VB6也很熟悉,因此我们确定使用微软的COM组件技术来开发该平台。...対于各组件我们采用VB6语言进行编写并生成DLL文件,通过注册成为COM程序,供各个组件调用。在数据库连接方面,我们采用了 ADO技术。...该组件具有两个接口,每个接口代表组件的某个属性或方法。如果学生的请求是咨询功能(Queryinfo方法),则将咨询值息请求做出相应的处理,并将咨询结果集返回给出学生。...二是容器集成,即如果一个组件需要调用另一个组件时,就在需调用的组件中引用另一个组件的方法。例如在使用咨询和提交信息组件时就需要先调用连接组件。

    1.1K20

    LoadLibrary:一款能够允许Linux程序从DLL文件中加载或调用函数的工具

    介绍 今天给大家推荐的这个代码库将允许原生Linux程序从一个WindowsDLL文件中加载或调用功能函数。下面是一个简单的演示示例,我将Windows Defender“移植”到了Linux平台。...-C++异常扫描和处理; -从IDA加载额外的符号链接; -使用GDB进行调试、设置断点和栈追踪; -设置运行时函数钩子; -扫描内存崩溃问题; 如果你需要从外部添加功能,你可以自行编写stubs,实现起来也非常的简单方便...如果我们想要对这类产品进行Fuzzing测试或收集数据,将会需要调用到整个虚拟化的Windows环境。 但在Linux平台上,这一切都不成问题。...构建 我们可以输入make命令来构建测试客户端: $ make 依赖 请注意,后缀.i686和:i386是非常重要的,我们需要32位代码库来使用32位dll。...symbols from engine/mpengine.dll...done.

    4.7K80

    .NET for Visual FoxPro Developers(三)

    此外,如果你在同一机器上有同一 DLL 的不同的版本,你还会遭遇版本维护的问题。...实际上,调试器允许你单步调试任何 .NET 语言所书写的的组件。例如,你可以单步调试一个 VB.NET 所写的客户端,它调用了一个用 C# 所写的组件的一个方法。...2..NET 组件 DLLs 是自描述的,并且不需要在 Windows 注册表中注册。通常情况下,你只需要拷贝一个 .NET DLL 到一个机器上后,它就可以工作!...这是一种比调用 Windows API 更好的方式,因为调用 Windows API 时已假设你的应用程序运行在 Windows 操作系统上!...这是因为 VB 开发者转移到 .NET 的最大的学习曲线是面向对象。尽管 VB6 是基于对象的,但它并不具有真正的继承(参看第五章 C# 和 Visual Basic .NET 中的面向对象)。

    58610

    从困惑到精通:解锁 Java 方法调用的终极秘密

    引言你是否曾在Java编程中遇到这样的困惑:为什么有时候需要用对象.方法名()调用,有时却可以直接写方法名()?静态方法和实例方法到底有何不同?嵌套调用又是什么魔法,能让代码既简洁又强大?...在Java的世界里,方法调用看似简单,却藏着许多容易让人犯晕的细节。从对象调用到静态导入,再到返回值与无返回值的嵌套场景,每一个格式背后都有它的逻辑和规则。...一、正常格式1.调用实例方法实例方法是属于某个对象的,需要通过对象实例来调用。...}}2.调用静态方法静态方法属于类本身,不需要创建对象,可以直接通过类名调用。...}}3.3链式调用如果返回值是对象,可以继续调用该对象的方法。

    8521
    领券