natsuの秘密基地です
カレンダー
10 | 2024/11 | 12 |
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
カテゴリー
プロフィール
HN:
natsu
性別:
男性
趣味:
酒など
自己紹介:
ここに書かれていることはフィクションです。
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
OgreKitっていうものがあるみたいですね。
鬼車をラッピングしてMac向けの機能を追加しているようだ。
うん。もちろん。ここではまり倒したよ。
鬼車をラッピングしてMac向けの機能を追加しているようだ。
私はよく見ていないからわからないけど、
だいたいこういうものは一般的にいって、使いやすいんだと思う。
だから、今作っているアプリで正規表現検索を使いたいなら、
これを使えばいいんだとおもった。
だが、しかし、それより私が興味あるのはdlopen。
ウィンドウズ環境で、
C言語の寄せ集めでDLLを作ったとして、
DLLをロードしてその関数へのポインタを取得するAPIがあったような。
そんな気がするんです。
覚えてないですけど。
こんなんでオブジェクトを作成して関数で返したり、
できたんだかできなかったんだか覚えてないですけど。
インポートライブラリ?なんすかそれ。
っていう勢いなわけです。
ライブラリの中に関数やら構造体のインスタンスやらの、
シンボルが潜んでいるんでそれをロードして使えばいいわけです。
こんなかんじ?
解凍されたディレクトリに、
libonig.2.dylib
libonig.a
oniguruma.h
を仕込んでみてください。
ビルド完了時のシェルがちゃんと動けばいいんだけど。
パッケージの中にFrameworksディレクトリを作って、
ライブラリを送り込みたかったんで。
Xcodeでターゲットでファイルをコピー、かなんかでやりたかったけど、
プロジェクトにライブラリを含めなきゃならないみたいなので。
libonig.aは多分必要ないんです。
ただ、なんやかんややってるときに、
フレームワークとしてlibonig.2.dylibをプロジェクトに含めて、
ターゲット、ファイルをコピー、の項目にこれを入れておいたら、
libonig.aも勝手にコピーされてたので。
でも、自分が使う限り、libonig.aはいらなかった。動いたし。
あと、メモリーリークががんがんにおこるのも気にしないでね。
そこはまあ、自分的にどうでもよかったというか。
自分に対して2行ぐらいだから書けといいたい。
んで、ヘッダで定義されているdefineとかが使えないんですが、
まあ、適宜に宣言するということで。
注意したいのはOnigurumaのサンプルと違って、
OnigDefaultSyntaxではなくOnigSyntaxRuby
を使っていること。
OnigSyntaxRubyのシンボルをロードすると、
構造体インスタンスのハンドルがかえるんですけど、
OnigDefaultSyntaxのシンボルをロードすると、
構造体インスタンスのポインタのハンドルがかえる。
型がそこはかとなく違ってしまうわけなんですねぇ。
なので、OnigDefaultSyntaxを使いたい場合は、
void **p_OnigDefaultSyntax = dlsym(p, "OnigDefaultSyntax");
r = (*p_onig_new)(®, pattern, pattern + strlen((char* )pattern),
ONIG_OPTION_DEFAULT, p_OnigEncodingASCII, *p_OnigDefaultSyntax, &einfo);
としなきゃなんないだろうなと、思ったり思わなかったり。
OnigSyntaxRubyでいいんじゃないでしょうか。
結局OnigDefaultSyntaxは&OnigSyntaxRubyだし。
そうね。私だったら、
OnigSyntaxPerlですわ。
うん。もちろん。ここではまり倒したよ。
で、実は正規表現について詳しくない。ってのは内緒ね。
PR
この記事にコメントする