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

Python015

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给的代码太少了。

采用的共享内存方式。

第1个用来存储接收到的数据块,第2个用来放接收端(64位)的winid,主要是提供给发送32位的dll调用端读取,在接收到数据后通知64位的接收端有新的数据需要从共享内存中读取。

第3个共享内存区是同步信号区。

文件上传到附件了

楼主你好,你可以重新下载一个msvcrt.dll文件,然后按如下步骤操作:

一、解压后直接拷贝该文件到系统目录里:

1、Windows 9598Me系统,复制到CWindowsSystem目录下。

2、Windows NT2000系统,复制到CWINNTSystem32目录下。

3、Windows XPWIN7Vista系统,复制到CWindowsSystem32目录下。

4、如果您的系统是64位的请将文件复制到CWindowsSysWOW64目录

二、打开开始-运行-输入regsvr32 msvcrt.dll,回车即可解决。

已上传并提供下载连接,可根据需要下载。

msvcrt.dll下载地址http51dll.comdllfile93.1.3384.htm

小技巧:如果无法进入桌面,可以启动安全模式或者使用PE启动电脑,然后修复。

【重要】:一定要选择与系统版本一致的DLL才可以

msvcrt.dll无法定位、丢失、找不到、加载失败 等问题的修复