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

Python021

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

Ruby,一种为简单快捷的面向对象编程(面向对象程序设计)而创的脚本语言.

作用:

Ruby 是开源的,在Web 上免费提供,但需要一个许可证。

Ruby 是一种通用的、解释的编程语言。

Ruby 是一种真正的面向对象编程语言。

Ruby 是一种类似于 Python 和 Perl 的服务器端脚本语言。

Ruby 可以用来编写通用网关接口(CGI)脚本。

Ruby 可以被嵌入到超文本标记语言(HTML)。

Ruby 语法简单,这使得新的开发人员能够快速轻松地学习 Ruby。

Ruby 与 C++ 和 Perl 等许多编程语言有着类似的语法。

Ruby 可扩展性强,用 Ruby 编写的大程序易于维护。

Ruby 可用于开发的 Internet 和 Intranet 应用程序。

Ruby 可以安装在 Windows 和 POSIX 环境中。

Ruby 支持许多 GUI 工具,比如 Tcl/Tk、GTK 和 OpenGL。

Ruby 可以很容易地连接到 DB2、MySQL、Oracle 和 Sybase。

Ruby 有丰富的内置函数,可以直接在 Ruby 脚本中使用。

Ruby 是一种面向对象、命令式、函数式、动态的通用编程语言。在20世纪90年代中期由日本计算机科学家松本行弘设计并开发。

遵守BSD许可证和Ruby License。它的灵感与特性来自于Perl、Smalltalk、Eiffel、Ada以及Lisp语言。由Ruby语言本身还发展出了JRuby(Java平台)、IronRuby(.NET平台)等其他平台的Ruby语言替代品。