HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2016
0411
catsHSPSDKでの型の登録について2解決


cats

リンク

2016/4/11(Mon) 18:18:06|NO.75205

今、VC++とHSPSDKでHSPの型を拡張するHPIを作っています。
例えば適当なtest型を登録し、

dimtype v, vartype("test")
のようにtest型の変数を初期化することまではできました。
それまでのイメージでは、

v = 123
とすると、test型のHspVarProcのCnvメソッドが呼び出されるのかな、
と思っていたのですが、実際には

v = test(123)
としないと呼び出されないみたいです。

v = 123 v = "string"
のように書いたときに、それぞれHSPVAR_FLAG_INT, HSPVAR_FLAG_STRが
代入されようとしていることを検知して、test型に自動でキャストする
処理を書きたいのですが、どこに処理を書けばいいのでしょうか。

HspFunc_dimでtest型が登録できないあたりからして、
型の登録手順を間違ったような気もするのですが、(これが原因?)
とりあえず上記のような処理は可能でしょうか。



この記事に返信する


ue_dai

リンク

2016/4/11(Mon) 18:49:52|NO.75206

型変換は明示的に書かないと起こりません。

ObjectWrite メソッドを実装することで


// v: test 型 v(0) = "i" // ObjectWrite が呼ばれる

みたいにすることは可能です。(添字の (...) は必須)



cats

リンク

2016/4/11(Mon) 19:00:25|NO.75207

>ue_dai様
素早いご回答ありがとうございます。
なるほど、やはり添字付きでObjectWriteしかありませんか。
とりあえず使用時は明示的に型変換するという仕様で作っていこうと思います。
ありがとうございました。



ONION software Copyright 1997-2021(c) All rights reserved.