うならぼスマートフォン用の表示で見るうならぼどうも。アフィリエイトとか広告とか解析とかは/about見てね。この広告は、90日以上更新していないブログに表示しています。2015-04-10RustはじめましたRustなにしようかなーと色々眺めてたら、@mattnさんがMessageBoxでこんにちはしてたので、これをやってみることに。Windowsっ子なので。})}はてダのシンタックスハイライトが対応してなくて悲しくなったので、はてなブログにやってきました。最近1.0.0のbetaが出てようやくstableになるってぐらいなので、出て間もないころに書かれた↑のコードはちっとも動かないわけです。これを動くようにします。`import`http://rustbyexample.com/mod/use.htmlimportっぽい機能はuseに統合された模様。{http://doc.rust-lang.org/book/ffi.html#foreign-calling-conventionsFFIはだいぶ変わってますね。WinAPIが例に挙げられてるので真似ます。"stdcall"ぽい。etc)http://rustbyexample.com/literals.htmluじゃなくてu32。省略しても動く気がした。errorvim-quickrunで実行したためにhogehoge.tmp.rsというファイル名になっているので、拡張子抜きから推測したcrateの名前がおかしいよって話ですね。ちなみにcreateは他の言語で言うlibraryやpackageみたいなもの、と書いてありました。https://doc.rust-lang.org/book/crates-and-modules.htmlさてどうしたものか。rust-lang/rust.vimを入れてみる。なるということもない。あきらめて一度保存した(保存済みであればtempfile使わないので)。ctypes::c_uint,さっきのFFIの説明を読むと、ctypeなんて書いてなかった。rust-lang/rustctypesはどうも消え去った気がするので、やっぱり*u8なのか。思ってたらlibc::c_charが例のドキュメントで使われてた。constつけときます。|message|例のドキュメントではstd::ffi::CStringなるものが使われてます。newしてunwrapしてas_ptr。unsafeはC#っぽい。libc::c_charじゃなくてi8使います。charじゃないんだからそりゃそうだろうという気もする。}}Rustなかなかよい。あとはてなブログなかなかよい。"Hello");}CString通さない版。c_charじゃないせいかu8。それに合わせてMessageBoxAの宣言変えるのも変な話だが。使う側でunsafeとかあれなのでラップした。ついでに引数減らした。rustは最後に評価した値が戻り値になるという噂を聞いていたけど、unsafeブロックの中から返すにはreturnが必要だった。&を取ったら、配列のサイズがわからんみたいなエラーが出た。して文字列リテラルじゃないとこの方法使えないんだろうか。そもそも動的な文字列どう扱うんだろうね。(1)はてなブログをはじめよう!unaristさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。