Ruby调用DLL函数的问题,无法正常显示字符串;DLL编程如何引用需要的DLL?

Python013

Ruby调用DLL函数的问题,无法正常显示字符串;DLL编程如何引用需要的DLL?,第1张

Win32API.new('DemoDLL','AddStringX','p','p').call(a)

先检查看看参数a是否是字符串,有必要的话就a.to_s.再看C的DLL返回的数据是否为字符或者字符串。个人感觉是DLL的问题,如果不行就试试下面的。

win32api应该是比不上dl库,试试使用dl库

require 'dl'

myd1=DL.dlopen('DEMO.dll')

myd2=myd1['AddStringX','CS']

print myd2.call('Test')

或者是print mydll.call('Test').to_s

好久没用Ruby,搞不清楚了。

第二个问题

DLL直接在开头include不就ok了,

之后直接调用函数就可以了。。。

一些系统关键DLL应该默认就include的了,直接调用内部的函数就可以了

没有写过C的DLL只是根据经验而已,DLL应该和普通的exe在调用dll上没区别。

可惜你的DLL给的代码太少了。

解决开机出现dll文件加载失败的方法

总会时不时的在论坛看到有人发贴问这些问题(加载c:****出错,找不到指定文件),我利用搜索功能看了一上,所有的回答基本上都差不多,所以我整理了一下,大致归纳为下面这些,希望有这种问题的朋友在发贴前先看看此贴,如果所说的这些方法还不能解决您的问题,您可以再发贴,寻求帮助,谢谢!~~

一、关闭启动程序法

开始菜单→运行→输入“msconfig”→确定→打开系统配置实用程序→点击"启动"选项卡→在命令里找到含该某某dll的那一项(或没用的启动项),把前边的勾去掉,然后确定,重启计算机

二、注册表法

开始→运行→输入“regedit”→确定→打开注册表编辑器。找到以下的位置

,删除含某某dll的相应键值:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

在注册表编辑器中→菜单栏→编辑→查找→输入某某dll→搜索→删除查找到的对应项目。可能不止一个。可以直接按f3键查找下一个。

其它

1:进安全模式用360安全卫士清理垃圾文件

2:去下载一个DLL(或到其它计算机上复制一份)覆盖它。

dll因为某些原因(最大可能是因为它是个病毒或流氓软件的dll文件,被杀软删除了)丢失了,但其相关的注册信息却还在,导致系统开机时还加载它,却又找不到它的文件,所以报错。