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


HSPTV!掲示板


未解決 解決 停止 削除要請

2020
1106
ふじこlpみんな関数ならいいのに。3解決


ふじこlp

リンク

2020/11/6(Fri) 19:30:01|NO.91754


/******************************** * みんな関数ならいいのに.as * * by Rasten-U(ふじこlp) * *********************************/ #module MinnaKansuu #undef exist #defcfunc exist str _p1 exist@hsp _p1 return strsize #undef noteget #defcfunc noteget int _p1 noteget@hsp _ret,_p1 return _ret #undef bload #defcfunc bload str _p1,int _p2,int _p3 bload@hsp _p1,ret,_p2,_p3 return _ret #undef getkey #defcfunc getkey int _p1 getkey@hsp _ret,_p1 return _ret #undef stick #defcfunc stick int _p1,int _p2 stick@hsp _ret,_p1,_p2 return _ret #ifdef __hsp3utf__ #undef cnvstoa #defcfunc cnvstoa str _p1 cnvstoa _ret,_p1 return _ret #undef cnvstow #defcfunc cnvstow str _p1 cnvstow _ret,_p1 return _ret #endif #global



この記事に返信する


f(修羅場in2020)

リンク

2020/11/9(Mon) 17:02:58|NO.91769

すラばしい…。

常々面倒とは思っていたが、そこで止まってたわ…
目から角膜が剥離する思いだわ…



ふじこlp

リンク

2020/11/9(Mon) 19:27:38|NO.91770

>すラばしい…。
>常々面倒とは思っていたが、そこで止まってたわ…
>目から角膜が剥離する思いだわ…
ありがとうございます!
「なぜこれが命令なんだよ!!」というのが多かったので作りました。
モジュールにもいろいろあるのでそれもどうにかしたいと思います。



Pさん

リンク

2020/11/9(Mon) 23:43:03|NO.91773

bloadやcnvstowは命令形式でないとちゃんと動きません
nullを含むバイナリをreturnで返そうとしても、null終端の文字列として認識されるため途中で切られてしまうためです

また、HSPの文字列型は初期値64Byteのため、自動拡張のないcnvstowで全角31文字以上を変換しようとすると最悪メモリオーバーフローでHSPのプロセスが落ちます
事前にWin32のMultiByteToWideCharで変換後に必要な領域をsdimしてあげる必要がありますね

ただ、命令の失敗をいちいちstatで見るのが面倒なので、命令を廃止して関数に一本化するのは賛成です
C言語のようにただの数値(=関数の結果)は無視してもらうようにしてほしいところです



記事削除

記事NO.パスワード
(質問が解決したスレッドは他の利用者に活用してもらうため、削除しないようお願いします)

NO.91754への返信

マスコット

好きなマスコットを選んでください。

名前

e-mail
HOME
  1. 初めて利用する方は、HSP3掲示板の使い方をお読みください。
  2. 不要部分の多い長いスクリプトの投稿は ご遠慮ください。
  3. 書き込みは自動改行されません。適度に改行を入れてください。
  4. スクリプトは小文字の<pre>〜</pre>で囲むと見やすく表示できます。

削除用パスワード

エラー発生時、再送信すると二重送信になることがあります。
回答が得られたら、お礼書き込み時に[解決]チェックしてください。
SPAM防止のためURLから始まる文章は投稿できません。
SPAM防止のため英文字のみの本文を投稿することはできません。

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