日々のことを取り留めもなく書く日記

この人のサイトへ
Twitterへ
378815
20040506070809101112
2005010203040506070809101112
2006010203040506070809101112
2007010203040506070809101112
2008010203040506070809101112
20090102030405060708091011
201001020304071012
2011010203040506070809101112
2012010203040506070809101112
2013010203040506070809101112
2014010203040506070809101112
2015010203040506070809101112
2016010203040512
201712


2005-10-29

[]なでしこdeポインタ 02:31

現在なでしこは、ポインタを扱えないこともないですが、非常に扱いづらいです。
基本的にはAPI出力用のPOINTERのみですから。
これを確保&MoveMemoryで無理矢理データコピーしているんですが、いちいち書いているのは非常にめんどくさい。
また、変数ポインタは上のように使えなくもないんですが、関数ポインタは全く使えません。
まあ関数ポインタAPIに与えるのはインタプリタという都合上ほぼ不可能ですが、GetModuleHandledeで返されたポインタぐらいは実行させたいですね。
現状ではDLLの静的リンクしかできませんし*1
 
そんなこんなで、ポインタ管理……というか、ポインタ用のグループを作ることに。
これで変数ポインタでの手間は軽減されるでしょう。
問題は関数ポインタ
うーん、スタックの積み方とか、アドレスへのジャンプとかの仕方がわかれば良いんでしょうけど。
dnakoのソースの何処かにありそうなんですが、いかんせん量が多いのでどこにあるのかがわかりません……
うーむ、まあとりあえず保留しましょうか……
 
 
なでしこ利用者でどのくらいここ見ているか知りませんが、一応聞いてみましょうか。
>>ポインタ関連で欲しい機能は何ですか?<<
一人で考えてもあんまり思いつかないので聞いてみたいのです。

*1:内部では当然動的割り付け。そしてスクリプト上でもEVALを使えば出来なくもないですが、動作が遅い&不安定なので避けたいところ。

20040506070809101112
2005010203040506070809101112
2006010203040506070809101112
2007010203040506070809101112
2008010203040506070809101112
20090102030405060708091011
201001020304071012
2011010203040506070809101112
2012010203040506070809101112
2013010203040506070809101112
2014010203040506070809101112
2015010203040506070809101112
2016010203040512
201712