ruby 里面怎么调用MFC的函数

Python020

ruby 里面怎么调用MFC的函数,第1张

如果是系统的类的函数,需要在前面加上::,如果是你使用的类中的函数,在类中使用时,直接调用,函数名(实参),其它类中使用,先声明实例,类名dlg,dlg.函数().如果不在类中,只是当前文档中使用,直接函数名就OK。。。

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

system(“.ruby”)或者load 'another.rb'

具体代码如下:

# 返回ls的输出

s=`ls`

cmd= "ls"

s= `#{cmd}`

# 返回true or false

s= system('ls')

cmd= 'ls'

s= system(cmd)

#返回输出

s= %x[uptime]

#用top进程替换当前ruby进程

exec "top"

cmd = 'top'

exec cmd