2007-10-14
■ [dnako][コミット][仕様話]DLLへポインタを
今、ポインタをDLL関数に渡すとき、文字列や実数ならば、参照渡しを付けておけば、そのまま渡してもきちんと指定した変数へのポインタを渡すなりなんなりしますが、整数の場合はPOINTERでアドレスを渡さなければなりません。(先ほどまでそれすらうまく動いていなかったので修正しました)
これは、なでしこでポインタ型が使われていないため、POINTERの返り値と整数の値とが区別できないためです。*1
「使われていない」と書きましたが、じつは内部的にはポインタ型があります。
しかし、全く使われていません。
これを使うようにすれば、ポインタと整数がデータ的に区別が可能になるので、この問題は解決するでしょう。
例えば、POINTER命令がポインタ型を返すようにすると、「POINTER(A)+1」はPOINTER(A)の値にかかわらず1になります。