小编Bre*_*ett的帖子

你如何使用Ruby/DL?这是正确的吗?

我正在尝试在RSPEC(ruby风味的BDD)和Windows应用程序之间编写一个接口.应用程序本身是用一种晦涩的语言编写的,但它有一个C API来提供访问.我已经使用Ruby/DL,但是即使是最基本的DLL方法调用也很困难.这是我到目前为止,在一个名为gt4r.rb的文件中:

require 'dl/import'

module Gt4r
  extend DL::Importable
  dlload 'c:\\gtdev\\r321\\bin\\gtvapi'

  # GTD initialization/termination functions
  extern 'int GTD_init(char *[], char *, char *)'
  extern 'int GTD_initialize(char *, char *, char *)'
  extern 'int GTD_done(void)'
  extern 'int GTD_get_error_message(int, char **)'
end
Run Code Online (Sandbox Code Playgroud)

到目前为止,我的阅读表明这是我需要的所有内容,所以我写了一个RSPEC示例:

require 'gt4r'

@@test_environment = "INCLUDE=C:\\graphtalk\\env\\aiadev\\config\\aiadev.ini"
@@normal_user = "BMCHARGUE"

describe Gt4r do
  it 'initializes' do
      rv = Gt4r.gTD_initialize @@normal_user, @@normal_user, @@test_environment
      rv.should == 0
  end
end
Run Code Online (Sandbox Code Playgroud)

当跑...

C:\code\GraphTalk>spec -fs -rgt4r gt4r_spec.rb

Gt4r
- initializes (FAILED - 1)

1)
'Gt4r initializes' FAILED …
Run Code Online (Sandbox Code Playgroud)

c ruby rspec interface rubydl

3
推荐指数
1
解决办法
3625
查看次数

标签 统计

c ×1

interface ×1

rspec ×1

ruby ×1

rubydl ×1