計測器をWindowsのRubyで動かすための基本事項です。 RubyからWindowsのBeep関数(kernel32.dll)を使う方法は、少なくともwin32apiライブラリ, dlライブラリ, FFIの3つがあります。 (1) win32api require 'Win32API' # win32apiライブラリ # new インスタンス化 # 'kernel32' kernel32.dll を呼び出す。".dll"は不要 # "Beep" Beep関数の使用 # %w(l l) 引数の型の配列を作成。lはlong # "l" 返値の型 beep = Win32API.new('kernel32', "Beep", %w(l l), 'l') beep.call(262, 200) # beep関数の呼び出し。262は周波数、200は音の長さ。 (2) dlライブラリ (Ruby
cles::blog 平常心是道 blogs: cles::blog NP_cles() « KIM THANH :: Yahoo!にオフィス版デザインが追加 » 2009/11/27 RubyからWin32APIを叩く ruby windows cpp 361 4へぇ バッチの動作を自動化しようとしたら、DLLを読み込んでAPIを叩く簡単なアプリを書かなければならない事が判明したのですが、僕はWin32で動くアプリ(C#, VC++, VB)を書いた事がないので困ってしまいました。 それだけのためにWin32アプリの描き方を覚えるのもアレなので、いつもバッチ処理で使っているRubyを使ってなんとか済ませられないかと調べてみると「Win32API - Rubyリファレンスマニュアル」に"DLL dllname をロードし、API関数 proc のオブジェクトを生成"という部分を見つけ
rkremap を作ってるとき、最初は FFI を使ったんだけど、そういや Fiddle だと Ruby 標準だからそっちの方がいいかな…と思って Fiddle で作り直した。 ということで忘れないうちに Fiddle についてまとめておく。 Fiddle Fiddle を使うと Ruby から C のライブラリ関数を呼び出すことができる。 C ライブラリを使いたいんだけど Ruby のライブラリが用意されてない場合とかに Fiddle を使えば C を書くこともなくコンパイルもせずにサクッと使うことができる。当然 C の知識は必要だけども。 たとえば libc の atoi を呼ぶにはこんな感じ: require 'fiddle/import' module C extend Fiddle::Importer dlload 'libc.so.6' extern 'int atoi(con
Rubyアドベントカレンダー(その1)10日目の記事です。 qiita.com 技術アドベントカレンダーの原点?に立ち返り、自分の書いたものではなくTipsの話をします。 今回はここ数年よく使うようになったgem、fiddleの紹介をしようと思います*1。 fiddleとは/FFIとは fiddleとはRubyにおいて、FFI(Foreign Function Interface)をするためのgemです。 github.com そのものずばり ffi というgemがあるためそちらを使う方も多いようですが、fiddleは現在標準ライブラリであるので、Rubyをインストールしたらそのまま含まれており、またRubyコアチームによりメンテナンスされているようです。 さて、ではそのFFIとは何かという話になります。「あるプログラミング言語から他のプログラミング言語で定義された関数などを利用するための
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く