API ┣━┫HSP上級者専用スレッドvol.0x01┣━┫MCI
1 :
デフォルトの名無しさん :
04/08/17 19:25 上級HSPユーザー専用スレッドです。
HSPとその周辺、拡張関連の話題等も含め広い範囲での技術的話題を扱います。
ダイナミックリンクライブラリの作成やHSPを使った通信等、多言語やHSP以外の知識が必要な話題も可能です。
ダイナミックリンクライブラリやランタイムの作成依頼もどうぞ。
話題の乏しい場合には初心者の質問も受け入れます。
┏┓注意事項
┗┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
①分からないことはGoogleで検索 →
http://www.google.co.jp/ ②荒らし中傷教えてマルチ厨は放置
(相手にするくらいなら黙って削除整理か規制議論に持っていってくれ)
③ダイナミックリンクライブラリの作成依頼をする場合は、
検索を十分した上で細かい仕様を明記すること。
┏┓関連リンク(2ch外)
┗┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
◆HSPオフィシャルホームページ
○Hot Soup Processor Page (通称本家)
ttp://www.onionsoft.net/hsp/ ◆ML
○HSPメーリングリスト
ttp://garde.esprix.net/hsp-ml/
┏┓関連リンク(2ch内)
┗┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
◆ゲーム関連
○HSP - Hot Soup Processor [8]
http://pc5.2ch.net/test/read.cgi/gamedev/1091694802/ ◆プログラミング関連
○none
┏┓FAQ
┗┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
◆HSPのDLLはフリーソフトで作成できますか?
A.できます。フリーのC/C++コンパイラがあれば可能。
(Delphiでも可能なはず)
重複スレにつき削除依頼 削除されるまで書き込みをしないで下さい
4 :
デフォルトの名無しさん :04/08/17 21:32
llmod.asを使ってできることはDLLでもできるんですか?
>>4 できる。
つかllmod.asのがどういうものか分かってるのか?
6 :
デフォルトの名無しさん :04/08/17 21:57
7 :
デフォルトの名無しさん :04/08/17 22:19
知らぬ間にこんなスレが立ってたのか。 まあ、別にいいんじゃないの。>削除依頼 俺はAPIは一切使えないがw
>>6 >ダイナミックリンクライブラリやランタイムの作成依頼もどうぞ。
作成できないと言うことは中級以下、つまりこのスレは厨でもOKかと
9 :
デフォルトの名無しさん :04/08/17 22:47
ライブラリを作ろうと思うんだが、 ライブラリ内でのウィンドウハンドルの取得方法が分からん。
10 :
デフォルトの名無しさん :04/08/17 23:22
>>9 HSPEXINFO構造体からとってくる
12 :
デフォルトの名無しさん :04/08/17 23:33
hspexいんふぉ構造体にはHSP内部の情報が入ってるだけだ。 ウィンドウIDは入ってたと思うがウィンドウハンドルまでは入ってなかったはず。 ウィンドウハンドルを得るには普通に親ウィンドウのハンドルを取得すればいいんじゃないのか?
14 :
デフォルトの名無しさん :04/08/18 00:13
APE ┣━┫HSP低級者専用スレッドvol.0゚01┣━┫MAC
ウィンドウハンドルはBMSCRじゃろ。
いや、マニュアルに書いてあるし。
メンバに
HWND hwnd; //window handle
ってのがある。
てか画面に関するものは大抵BMSCR構造体だし。
マニュアル100回読み直せ。
>>13 だけ1000回。
16 :
デフォルトの名無しさん :04/08/18 00:23
そういえば以前誰かが、mesよりprintのほうが速いって言ってた気がするんだが 一万回表示して計測したが同じだったぞ。 実際どうなの?
>>16 今は同じだと思われ。
バージョンアップしたときに細かい変更点とか色々あるから。
awaitの負荷もデフォで減ってるし。
おまえら最新バージョン使ってんのか? 俺はまだver2.6使ってんだけど。
>>9 これでウィンドゥハンドルを取得できる。
EXPORT BOOL WINAPI MyTest1(BMSCR *bm, int p1, int p2, int p3){
HWND hMyWnd;
hMyWnd = (*bm).hwnd; //ウィンドゥハンドルの取得
・
・
・
/* 処理 */
・
・
・
return 0;
}
俺は面倒だからまだバージョンアップしてないが、 ダウソページの新バージョンハイライトを見る限り結構変更してあるみたいだな。 拡張プラグインのアップデートも微妙にしてあるようだしな。 ODBC経由でアクセスできるあたり興味深いが。
ちょっと聞きたいんだけど ペイントソフトみたいなのを作ったとして塗りつぶしみたいなのはどうやるんですか? 気になりだしてからもう一年になります。 アルゴリズムが思い浮かばないYO!
22 :
デフォルトの名無しさん :04/08/18 12:00
>>19 サンクス!
>>18 俺もまだ。
今書いてるスクリが動かなくなったら困る。
23 :
デフォルトの名無しさん :04/08/18 12:41
ステータスバーを作る拡張DLLを作ってみました。
ステータスバーに表示する文字列を変更するときのプログラムの書き方なんですけど
これで正しいのでしょうか?
ステータスバーのハンドルを取得する方法が分からなかったので
ダメ元でステータスバーのハンドルの変数をグローバル変数として宣言してみたら
希望通りの結果にはなったのですが…
DLLは作成されたステータスバーのハンドルを保持するんですか?
保持していないのであれば希望通りの結果になったのが不思議なんですけど。
ttp://ccfa.info/cgi-bin/up/src/up4759.zip 一式アップしたのでよろしくお願いします。
24 :
デフォルトの名無しさん :04/08/18 13:17
>>21 1年かかってもわからないんならあきらめろ。
25 :
デフォルトの名無しさん :04/08/18 13:21
1ドット移動 ↓ 色取得 ↓ 同じだったら塗りつぶす ↓ 以下LOOP
>>23 ライブラリ内の変数は値を保持する。
Statusbarのハンドルをグローバル変数にしてあるようだから無問題。
試してみれ
#include <windows.h>
#include "c:\Program Files\hsp26\hspsdk\sample\hspdll.h"
char mystr[256];
EXPORT BOOL WINAPI test1(BMSCR *bm,int p2,int p3,int p4)
{
char *str="変数の内容を保持";
strcpy(mystr,str);
TextOut(bm->hdc,0,20,mystr,strlen(mystr));
return 0;
}
EXPORT BOOL WINAPI test2(BMSCR *bm,int p2,int p3,int p4)
{
TextOut(bm->hdc,10,60,mystr,strlen(mystr));
return 0;
}
本家の過去ログに サンプルあったはずだが? よくさがせ
>>23 二番目の関数の引数にBMSCR構造体へのポインタはいらないんじゃないの?
29 :
デフォルトの名無しさん :04/08/18 14:03
コモンコントロールの初期化は別にしたほうがいいと思われ
(*´д`*) ハァハァ… 名スレの予感
33 :
デフォルトの名無しさん :04/08/18 19:34
34 :
デフォルトの名無しさん :04/08/18 22:17
BMSCR構造体を使う場合は変数バッファへのポインタは取れないわけ?
MCIコマンドで再生できるものにMP3があるが、 デフォルトでMP3をサポートしていないHSPでも再生可能ですか?
>>34 DLLが変数の値を保持してるんだったら…
欲しい値をDLL内でグロバル変数にしておいて
次の命令(変数バッファへのポインタを取れるやつ)でゲトすればOK。
命令を二回書くのが嫌だったらさらにそれをモジュール化してしまうとか。
40 :
デフォルトの名無しさん :04/08/19 21:18
こういうスレは、荒らされませんねw
何を今更って感じだが
>>8 お前は全てのジャンルのDLLを作れるのか。
DLL自体を作れても得意不得意はあるだろう。
>>1 の注意事項を呼んでみたら
>細かい仕様を明記すること。
と書いてある。
厨に細かい仕様が書けるんならOKじゃないの?
ウィンドウを半透明にするDLLを作ろうかと思ったが 今更流行らないだろうな・・・ と思ったけど、 HSPから画面上の任意のウィンドウを半透明化するDLLってまだなかったよな? なかったら作ってみたいんだが。
わざわざDLL作らんでも出来るだろうに
>>44 世のため人のため、
自分のスキルアップのために作ってみたいなと。
うぅ・・わりー DLLサイズには、気をつけれ
>>47 タブコントロールDLL作れってか?
タブコントロールってなんぞや
プロパティーシートのページ選択みたいなやつか?
既存の拡張ライブラリのほとんどの機能を統合したようなライブラリはどうかね。 それ一つ放り込めばOKってことでかなり楽じゃないか。
なんだよこれ 右下の引っ張る奴の意味は? お舞は、それをぐりぐり試したのか? 45.5KBは、どうなのかね?
あやや~ゴルァ~ この程度で著作権だと~w 著作権○く○"見たいになるぞ
ステータスバーの高さくらい返せよ
>>52 ,
>>54 ありがとうございます。
今から修正致します。
>>53 予定だと小まめにバージョンアップするつもりなので、
そこで混乱が起きたらアレだなと思ったもので。
著作権があるだけでなので無断転載再配布改造は自由です。
45.5KBはどうなんですかね。
BCCで作っているんですが、ほとんど何も書かない一番小さい状態で45.0KB(DLL本体)です。
ちなみに #include "llmod.as" screen 0,640,480 mref bmscr, 67 prm=0x50000003,0,bmscr.13,1 dllproc "CreateStatusWindowA", prm, 4, D_COMCTL : Sbw = stat spos = winx-300,winx-100, -1 prm = Sbw, 0x404, 3 : getptr prm.3, spos : sendmsg prm stop でできるんだが それのスタイルは、やっぱり指定できたほうがいいよね VCのただ版あったべ?そっち使うともう少し小さくなるんじゃねーの
メニューバー作成も付けばいいかも
bccなら リンクにnoeh32.lib指定すると 小さくなるよ
DLLなんて久しく作ってないから
つっか Microsoft Visual C++ Toolkit 2003 なんだけど・・・・
>>60 『Hatujyouki.dll_AyaGetSt@16が見つかりません』というエラーが出る。
原因は更新したHatujyouki.dllが入っていないから。
MD5が一致しました。
9C90914972064142E7048DCCA2881B8F
64 :
DLLの魔術師 :04/08/21 23:53
65 :
デフォルトの名無しさん :04/08/22 00:36
BMSCR構造体のさ、 COLORREF color ってのがよく分からんのだが。 例えばDLL内で SetTextColor(bm->hdc, RGB(r, b, g)); としたい場合、COLORREFのcolorからr,g,bを取り出すにはどうしたらいい?
>>65 RGBに変換する必要なかろう。
以後そのRGB値を利用するのであればそこでRGBに変換するのもよかろうが
そこで文字色を設定するだけであればCOLORREFのままで構わん。
SetTextColor( (*bm)hdc , RGB( r , g , b ) ) ではなくて
SetTextColor( (*bm)hdc , (COLORREF)(*bm)color ) とすればよかろう。
さすれば汝の道も開かれることであろう。
HSPのソフトでトリップ使いたいんだけど、Crypt関数を使えるようになるDLLかモジュール作ってくれませんか?
そのまえに、ググって見ろや ここは初心者スレでは、ないんだよ
70 :
デフォルトの名無しさん :04/08/22 19:24
>>69 勝手に仕切ってスレの本題を無視する馬鹿なお前、
二度と書き込まなくて言いから。
>1 :デフォルトの名無しさん :04/08/17 19:25
>ダイナミックリンクライブラリやランタイムの作成依頼もどうぞ。
71 :
デフォルトの名無しさん :04/08/22 19:42
よくぞ釣れてくれた感謝する 最近テンでえさにかからなかっらんだよw
テめーで探しもせんで
DLL作ってつたって・・・・
モジュールなら いくらでも公開されてるが・・・・
それとも
>>1 がスキルアップに作ってくれるかな?w
>ダイナミックリンクライブラリやランタイムの作成依頼もどうぞ。 検索を十分した上で細かい仕様を明記すること。 検索を十分した上で ってなってますが なにか?
どっちにしても
>>68 が細かい仕様を書いてないからな…
トリップって ◆hsp/8n/.asやつか?
MD5か?
>>1 は、ググっても見つかんないような
物のDLLとか作ろーって言ってんじゃないのか?
クレクレ房が、クレクレいっても作ってはもらえんよw
うせろ
日増しにサイズ デカくなっていくなw
KEYとSALTの指定が必要です。
>>73 に書いたのでは作れなかった。
以下コピペ
#ここから
#!/usr/bin/perl
$a = crypt("01234567","12");
print $a;
#ここまで
このコマンドを実行して出力される結果は12JBvcplLXSGo
ここから頭3文字を取るとBvcplLXSGoになる。このBvcplLXSGoは
2chで#01234567と名前欄に入れたのと同じ結果。
84 :
デフォルトの名無しさん :04/08/22 20:10
>>80 ググって見つかるなら場所教えてやればいいじゃないか。
そうすりゃクレクレ君は来ねえだろうが。
BccDev.exe つかってんなら プロジェクト設定 リンク に指定すればOKだが 20kぐらい小さくなるよ 、デメリットはよく分からん べつに強制してるわけじゃないから
キ・サ・マには、分かっててもゼッテー おしえん むかつく
ちょくとタンの裏技使ってみるとかね でも普通の人は、気にすんのかな? 漏れは気にするほうだけど・・
ufccrypt.dll つうやつ HSPから使えるが・・・ あとは 猫でものページみるか あれはAPIでやってんのかね?
>>85 BCCでべろっぱーは使ってません。
コマンドラインです。
今50KB弱ですから、20kBも小さくなるとかなりの軽量化ですな。
メニューを選択したときに、それを処理する方法が分かりません。 HSPユーザーに馴染み深いbutton命令のように、 メニューがクリックされたら決めておいたラベルに飛ばすようにしたいんですけど・・・ ウィンドウプロシージャを自分で作って、それをメインにしようかとも思ったのですが、 ーーーーーーー・・・ 妙案があれば賜りたいです。
ウィンドウプロシージャを自分で作って処理しれ もしくは、そういうDLLあるからそれ使え サイズ固定ならべた書きでも面白いなもな
使える物があるんなら それ使えば良いんじゃないの ll_libload UTdll, "ufccrypt.dll" ll_getproc ufccrypt, "ufccrypt",UTdll sdim a,13,4 a.0="bG8svsD1" strmid a.1,a.0,1,2 ll_getptr a.0 : ll_ret prm.0 ll_getptr a.1 : ll_ret prm.1 ll_getptr a.2 : ll_ret prm.2 ll_callfunc prm,3, ufccrypt strlen len,a.2 strmid a.3,a.2,3,len mes a.3 stop
教えるなってのw
ひらがなの処理してないし さほど参考にもならんと・・
サンプル製造機のあほどもよ、チョットは参考になったぜ
言わんこっちゃないw
>>92 ありがとうございます。
やっぱり自分で作るんですか。
昨日も作ろうとしたんですけど、
どうも自作のウィンドウプロシージャに変更できなかったみたいなので。
もうちょっと頑張ってみます。
>サイズ固定ならべた書きでも面白いなもな
?
デスクトップに文字出力は反応がなかったなあ・・・ 奇抜で面白いかとも思ってみたんだけれど。
>>98 まぁ、それはよく自前のボタンとか作るやり方あるだろ?
マウス座標でチェックする奴。それのことだよ
>>99 むかしむかしやってたし
これといって・・・・
>>93 参考になりました。
2バイト文字は自力で何とかしてみようと思います。
ウィンドウプロシージャを自分のに変えるには、 SetClassLongではなく、SetWindowLongじゃないとだめみたいですね。 SetWindowLongでやったら上手くいきました。 SetWindowLongでHSPのウィンドウプロシージャを自分のものにしたのはいいんですけど、 メニューが選択されたときにそれを処理する方法が分かりません。 C++でウィンドウアプリケーションを組む場合、 メニューはリソースファイルに書いて、 それぞれのメニューアイテムに対してIDをつけ、 WM_COMMANDのところで処理しておたのですが、 今回のようにユーザーが動的にメニューアイテムを追加した場合の処理の仕方が分かりません。 C++でのウィンドウアプリケーションを組むときのように WPARAMの下位ワード(?)を処理しようとしたのですが、 それでは処理できないみたいなんです。 WM_COMMAND自体は送られてきていることが確認できました。 妙案があれば賜りたいものです。
むほぁ!
更新せずに書き込んでた。
>>100 なるほど。
うーむ、せっかくDLLでやるので、
通常のメニューでいきたいです。
>>101 これと言って目新しさはなかったみたいですね。
はい。
105 :
デフォルトの名無しさん :04/08/24 02:27
ちょくとタンのページ見たことないのか?
>>1 よ
結局・・・・・
そんな風に見える
106 :
デフォルトの名無しさん :04/08/24 13:39
おいおまいら! 本家を超えませんか? HSP to C か Acrive HSP を本家より先に作ってしまおう! ねらの底力見せてやろうじゃあないか!
そもそも、HSP to C、Active HSPの開発があまり進んでない罠
スレタイが違うだけでこうも違ってくるのか
109 :
デフォルトの名無しさん :04/08/25 13:03
110 :
デフォルトの名無しさん :04/08/25 13:06
大まかな仕様 >>HSP to C ①サブルーチン → 関数 ②あとは適当でいけるじゃろ >>Active HSP ①ブラウザのウィンドウハンドルを取得し、そこへ色々と ②FLASHのようにインストールが必要 ③DLL内部での処理が基本
例えば 標準でついている mes という命令を 自分で別の命令に置き換えることは可能かね? mesを実行したときに既存のmesではなく ライブラリの命令を動かしたりとか。 例えば そうすることでmesという命令で ライブラリ内の関数 EXPORT BOOL WINAPI mes(HSPEXINFO *hei,int a,int b,int c) { HDC hdc; PAINTSTRUCT ps; char *str str=hei->HspFunc_prm_gets(); hdc=BeginPaint(hw,&ps) //hwはブラウザのウインドウハンドル TextOut(hdc,x,y,(LPSTR)str,strlen(str)); //x,yは表示位置 EndPaint(hw,&ps); } で描画できる予感がするから hspユーザーは気にすることなくスクリプトを生成することができる。 また Javaアプレットより高速に動作するのではないか?
112 :
デフォルトの名無しさん :04/08/26 13:40
ねとげーむつくっているよ IPを教えないとできないわけよ でも面倒なわけよ だからいい方法ない?
>>112 鯖立てる。
プレイヤーはID登録(yahooみたいに)させることにして、
そのゲームで接続する度に鯖サイドのファイルへ自分のIPを書き込む。
こんな感じか
///////////////////////////////////////////////
<鯖のデータファイル>
ID IP
------------------
Player01 127.0.0.1
Player02 127.0.0.2
Player03 127.0.0.3
・ ・
・ ・
・ ・
<流れ>
①Player01がPlayer02とプレイしたいとき、Player01は鯖にそれを伝える。
②鯖はPlayer01にPlayer02のIPを伝える。
③Player01はそのIPを使ってPlayer02へ接続する(まあここは自動で)
※各プレイヤーは接続したときにそのIPを鯖へ送信する。
鯖ではそれが送信されてくる度にそのプレイヤーのIPを書き換える。
鯖以外で方法ないどすか?
115 :
デフォルトの名無しさん :04/08/26 17:01
>>113 そんなありきたりで面倒なこと
やってらんないわけよ
>>114 ,
>>115 じゃあnyみたいなやつ作って、みんなのIPのデータを共有する。
つか、
特定の相手と対戦できるようにしたいわけ?(例:yahooのバックギャモン)
それとも誰でもいいから対戦できるようにしたいわけ?(例:WindowsXPに最初からついてるインターネッツバックギャモン)
後者なら今挙げたny式で十分いける
誰でもいいから対戦のほうよ nyの方法でやると大変そう・・・・ よ CGIとかでやる方法はないのよよ?
>>117 CGIだったら鯖立ててやるやつでえーやん
>>113 の方法はそのつもりだったんだぜw
鯖立てたほうがいいと言ったのは、
無料のウェブスペースにそういうCGI置こうとしても大抵無理だと思ったから。
色々制限あるし。
無料でもそういうのがOKなところを見つければ十分いけるけど。
ウェブスペース探すなら →
ttp://us.geocities.com/diddle2do/ そのCGI作ったら動作確認しなきゃならないから、
どっちみち自分のPCに鯖の用意は必要になってくると思われ。
あと・・・HSPO2?
説明をまったく読んだことないし使ったことないから何とも言えないけれど・・・
プログラム実行時にCGIに自分のIP&ポート登録。 対戦相手求めるときはCGIからIP&ポート取得。 そのとき、CGIで自分のIP&ポートを消す。 対戦が終わったらまた、登録。 プログラム終了時にCGIの自分のIP&ポートを消す。 ny方式は重大な欠点として人数が多くないといけないというのがある。 &起動状態なってることが多くないといけない。 だから、やるとしたら汎用のネットワーククライアント作って プログラムの数(自分のだけじゃなく他人の)を増やし そのクライアントを多数の人に使わせるぐらいのことをしなきゃつらいと思う。
120 :
デフォルトの名無しさん :04/08/26 18:01
簡単なやり方と言ってんのにnyなんて わかんねーやつだな 鯖立てずにやる方法希望と言ってんのに 自前で鯖立てること勝手に前提にしてるし
>118 いろいろありがとうよ CGIでやることに決めたよ だいたい>119のかんじで 作り方知らないけどばんばるよ
>簡単なやり方と言ってんのにnyなんて 上級者なら難しいことはなかろう そのプログラムを組むのに時間がかかるかからんは別として >自前で鯖立てること勝手に前提にしてるし これについての根拠はちゃんと書いてある
>>122 >これについての根拠はちゃんと書いてある
書いてねーじゃん
>>123 >>118 >鯖立てたほうがいいと言ったのは、
>無料のウェブスペースにそういうCGI置こうとしても大抵無理だと思ったから。
>色々制限あるし。
>無料でもそういうのがOKなところを見つければ十分いけるけど。
> ウェブスペース探すなら →
ttp://us.geocities.com/diddle2do/ >そのCGI作ったら動作確認しなきゃならないから、
>どっちみち自分のPCに鯖の用意は必要になってくると思われ。
何で
>>123 みたいな頭のおかしい香具師がいるのかね。
>鯖立てたほうがいいと言ったのは、
これだけはっきり書いてあるのにね。
真性の基地外か精神障害者とか思えん。
文盲なのは確実だろうが。
でも、鯖たてる必要はまったくない。 CGIが使える無料HPサービスいっぱいあるし、 動作確認もローカルでやる必要性がない。 大体、自鯖でチェックするより、実際のHPでチェックしないと 環境の違いとか出てくる可能性あるし。 (大文字小文字の問題など) わざわざ、鯖たててCGI(perl)を実行できるまでさせようとするなよ。 ここがネット関係板ならわかるけど。
>>126 自鯖で動作確認せずにいきなり人様の鯖に上げるのか?
それも問題アリだろ。
ローカルでの動作確認は必須じゃないか???
自分のCIのせいでレンタル鯖に深刻な問題が起きたらかなりヤバイだろ。
まるまる一台貸し出してるところはかなり少ないし、
つーことはその鯖で障害が起きれば他の人にも迷惑かかるわ、
場合によっちゃ鯖官から損害賠償を請求されることだってありうる。
自鯖でのチェック → レン鯖でのチェック → 公開
の流れが自然だと思うが。
ネット関係板じゃなくてもネットワークを使うって話が出てるんだから
ネットワーク全般についての話題は当然だろうし。
インターネットでCGI使うって話と鯖の話は切り離せないと思うが。
鯖くらい立てられるだろ?
立てられないほど知識がないなら鯖サイドでのCGIの実行などもってのほかだ。
>CGIが使える無料HPサービスいっぱいあるし、
でも規約が厳しいぞ。
色々と。
一番多いのが、「通常の閲覧ができない~云々」だ。
利用者を制限する内容をウェブスペースの置くことを禁止する内容が大抵書いてある。
>>127 CIって何だよ、CGIだよ。
自鯖でテストせずにレン鯖でテストってのは絶対おかしいだろw
それができるんならあれだ、
自分の作ったソフトを、デバッグ/テスト一切なしで公開できるか?
やってみろよ、人のコンピュータで自分の作ったものを動作させるという点で全く同じだ。
違うだろ。WindowsでUnixアプリを開発するようなもんだぞ? だから、テストできないのはしょうがない。 それにperlで深刻な問題って普通起きないだろ。 大体、無料HPだってそれなりの鯖、環境なんだろうし。 CGI(perl)を自鯖でテストする人間の方が圧倒的に少ない。
>>129 perlはperlだから基本的なものは同じだろう。
だから環境依存以外の部分だけでもテストすべきでは?
>WindowsでUnixアプリを開発するようなもんだぞ?
そうだよ、だからムチャクチャじゃないか。
動作確認もできないのに違うOSで動作するものを作ろうとしてる時点でおかしくないか?
だからWindowsで動作確認してWindouwsで実行できるように自鯖をt(略
鯖環境と言ったって、
深刻な問題が起きるかどうかはスクリプトによると思う。
>CGI(perl)を自鯖でテストする人間の方が圧倒的に少ない。
少ないからいいという問題でもない。
俺が言いたいのは、
WindowsだろうとUnixだろうと、テストできないものを人のコンピュータでいきなり実行させるのか?
ってことなんだよ。
HSP→Dlephiを昔作っていたけど mes,pos,line,bmpsave等をつくったところで 仕様の違いで断念。 コンソール版でやるべきでしょうか・・・
>>131 意味(メリット)無いだろ。
Delphiの方がWindowsプログラミングは簡単だし。
>>132 あきらめてBrainFuck→HSPにしました
+-<>,.は完成してあとは[]だけです
以外と真面目に伸びてるな
>>3 ここは上級者専用スレッド
>>8 それは暴論だと思う
>>DLL
これから作るんならタイプ$202に統一しろよw
>>80 DLL専用スレッドってわけじゃないが
HSPの知識だけではできないレベルの話をしようと思ってこのスレを立てた
>>105 見たことありますが何か?
>>106 >>110 ガンガレ
>>鯖
どっちでもいいだろ
>>131 HSP→Cのほうが
3Dについて解説をやっているサイトしりませんか? なかなか見つからなくて・・・。
>>135 3Dの何について知りたいのかに依る。
そして、ググれ。
それと3D関係の板で聞いた方がいい。
どうせ、DirectXなんだから。
138 :
デフォルトの名無しさん :04/08/30 20:31
不人気スレ保全age
上級者はHSPなんか使わないだろ?
141 :
デフォルトの名無しさん :04/08/31 20:58
不人気スレ保全age
>>141 1よ、そんなことをするよりも自作自演で盛り上げろ。
みんなも見守ってくれ!!、これから1の全身全霊をかけた
一世一代の自作自演ショーが始まる。
さあ、その出来栄えをとくとご覧あれ!!
↓
│ _、_ │ ヽ( ,_ノ`)ノ 残念それは私のおいなりさんだ │ へノ / └→ ωノ >
144 :
デフォルトの名無しさん :04/09/01 21:38
不人気スレ保全age
145 :
デフォルトの名無しさん :04/09/02 00:01
どっちかと言うと初心者の質問なんだろうけどこちらで・・・ 秀丸などのエディタで書いたHSPのソースをコンパイルするツールで お勧めのやつありますか?
146 :
デフォルトの名無しさん :04/09/02 00:11
不人気スレ保全age
147 :
デフォルトの名無しさん :04/09/02 00:23
日の丸鉢巻締め直し、 ぐっと握った操縦桿 万里の波頭なんのそのゆくぞロンドン、ワシントン♪
こっちにも沸いたか・・・
湧いたの間違い。
漢字も満足にタイプできないDQNが湧いた。
152 :
デフォルトの名無しさん :04/09/02 10:24
154 :
デフォルトの名無しさん :04/09/02 22:59
本スレだって(w
156 :
デフォルトの名無しさん :04/09/03 20:34
1はこんな糞スレでも作った責任をとって、 自作自演でいいから盛り上げるべき。
157 :
デフォルトの名無しさん :04/09/04 00:57
DLLにはできるけどllmodではできないのってどの分野よ?
>>157 C/C++で組むときにインクルードしなければならないようなプログラムじゃない?
それか他のSDKが必要なやつとか。
llmodでDirectXは扱えまい。
>>158 そうでもない。
インクルードしても結局はランタイムを呼び出してるから、
DLL名及び関数名さえわかればかなりいける。
160 :
デフォルトの名無しさん :04/09/04 17:48
DLLにはできるけどllmodではできないのってどの分野よ?
関数の引数が、関数へのポインタの奴とか。
162 :
デフォルトの名無しさん :04/09/04 19:05
DirectXで思い出したけどさ、 hspdxを作ったときのDirectXのバージョンって何だろう。
163 :
デフォルトの名無しさん :04/09/04 23:00
音声の編集を可能にするDLLってまだなかったよな?
>>162 HSP2.5頃の奴は、DirectX5だったね。
fix版も最近になってやっと7に変えてるけど。
165 :
デフォルトの名無しさん :04/09/05 07:59
>>160 C/C++で組むときにインクルードしなければならないようなプログラムじゃない?
それか他のSDKが必要なやつとか。
llmodでDirectXは扱えまい。
166 :
デフォルトの名無しさん :04/09/05 08:53
>>165 そうでもない。
インクルードしても結局はランタイムを呼び出してるから、
DLL名及び関数名さえわかればかなりいける。
一瞬デジャビュかと思ったよ。 なんで同じ展開のコピペが?
168 :
素人なので詳しく解説いただければと... :04/09/05 23:35
HSPで作ったプログラムが、WinXPで適切に動作するか調べる方法はありますか? 複数人にプログラムを配った場合を想定して、パソコン情報判定後サブルーチンに 振り分ける形で処理したいのですが、よろしくお願いします。
WindowsXPを買う
買うとどうなるんだよう! まじめに答えんかいホゲ!!
俺はホゲよりもフーのほうが好きだぞ。
いや、そんなつもりでは... ここは地震に免じて...許せ! まずWinXPを買ってどうするフー?
>>168 方法1:
WindowsXPを買って、自分のパソコンにインストールして、
そのプログラムが動くかどうか調べる。
方法2:
WindowsXPを使っている知り合いか友人にテストプレイを頼む。
>>164 そうなのか。
今DirectXの最新バージョンは 9.0 Update(2004 Summer) だよな。
hspdxをさらに使いやすくできないものだろうか。
>>174 正確には9.0c。
でも最近のはほとんどがシェーダー関係だから。
それに、使いやすさとバージョンはあんまり関係ない。
たしか、Win2000にデフォで入ってるのがDirectX7だから
7ぐらいでいいと思う。
>>174 まぁ、使いやすくって言うのは作り手側によるよなぁ。
変に提供関数の機能を省略すると汎用性なくなってくるし。
hspdxとAMddrawの良いとこどりでなんとなくDll作ってても提供関数に悩む。
確かにXPを購入し、テストると確実なのですが... 友達に依頼してもよいのですが... しかし、新たにパソを買うのは経済的にもつらいし、友達の判定結果も(微妙な ところは)あてにならんし... 僕としては、何らかの命令を実行してエラーが出た場合、適合機種ではないと 判定してサブルーチンに振り分けようと考えたんですが、エラー扱いにならな いにもかかわらず、製作者の意思に反した結果が出た場合(プログラムは正常 に走っているが、表示が乱れる・音が出ない。)など、対処に困ってしまいます。 各種パソコンで走らせた結果が分かるエミュレーターのようなもの(コスト的 にないだろうなー)とか、機種を判定するDLLやプラグインのようなもの、或い は各命令の従来のパソコンとXPでの互換情報(これならあるかも)など、そのよ うなものがないだろうかと思い、悩んでいるわけです。 どうか救いの手を差し伸べてくだされフー!
メモリカードスロットのある店頭マシンで試す。コレ最強。 しかしデジタル万引きと間違われる危険をともなう諸刃の剣。 素人にはおすすめできない。
HSPの標準使ってる限りは問題ないはず。 APIもMSDNで調べればいいし。 OSのバージョン取得はAPIで可能。
181 :
デフォルトの名無しさん :04/09/07 18:10
>>177 友達に判定してもらうのが一番だと思うよ。
チェック項目を書いた表でも作って、その項目全てについて結果を書いてもらうとか。
それか・・・
そこまで友達を信用できないのなら、
動作させた結果をログとして書き出すようにしておいて、
そのログをテストプレイしてもらった友達からもらえばOK。
俺だったら後者のやりかたを選ぶが。
>>175 スマソ、バージョンのほうを強調したかんじゃないっす。
使いやすいのをってほうが本題です。
>>176 そうそう、それ、提供する関数。
それをなんとかもうちょっと使いやすくできないかなと。
今でも十分な気もするが・・・もうちょっと。
>>182 もうちょっと使いやすくか・・・
汎用性を高めるかコード記述負担を減らすのどちら?
一番いいのが2種類(以上)用意してくれる事。 簡単に使えるが汎用性が少ない。 汎用性に優れるが多少複雑。
>>184 2種類かぁ・・・確かにそれなら使い側に幅がでるなぁ。
う~ん、まずは多少細かく設定できる提供関数作らんとなぁ。
hspdxはちょっと中途半端かも、今考えると。
>>183 答えようとしたら
>>184 が俺の言おうとしてることを・・・
>>184 そんな感じです。
それか、デフォルトで設定されている項目を多くして、
省略して書けばコード記述負荷軽減、
省略せずに書けば細かく設定可能。みたいな。
>>178 その発想ナイス!
とりあえず別の目的に使わしてもらうっす!
>>179 APIですか~。なにやら知的なかほりが漂ってきますです♪
今までAPIなんか使ったことないんで、うまく使えんかも知れんけど試してみる価値ありです!
感謝!感謝!
でも、分からんかったらご指導のほど、よろしく頼みます!
>>180 いや、だから、水をどう汁と! いわゆる2ch名物の誤爆?
>>181 信用できないというかそいつも素人なんで...って言うかプログラミングに興味ないって言うか...
結局、HSPがXPでどういう挙動をするのか、僕としては分からないわけです。
僕の作った粗悪なアプリを走らせてフリーズなんてことになったら、面目ない
などとも思ったりするわけですよ。(ある意味信用してないってことかな?)
自分のパソならともかく、テストする時間も限られるし...でも悪魔のささやきが...実験してみよ♪
betaBBSヴァカに荒らされとるな
189 :
デフォルトの名無しさん :04/09/26 18:03:10
MCIで動画を再生しようと思って MCIWndCreateでWS_CHILDを指定して再生させたところ 再描画が上手くいきません。 色々調べたのですが、WS_CHILDで作成しているサンプルは 無かったので、どなたかご存知の方教えて頂けませんでしょうか
ユーザー名が本名でHSP使ってるところを苺きんたまに醸されたら一生の恥だろうなw
191 :
デフォルトの名無しさん :04/10/10 10:47:57
age
192 :
デフォルトの名無しさん :04/11/04 00:12:19
VC++あたりで作ろうと思ってた簡単なTCP通信プログラムがあるんだけど 200万とれるかなーと思って見積もり出して、いざ受注したら値切られてて 150万くらいしか貰えなかったから なんか腹立ったので HSPで作ろうと思うんだけど、 だれか仕事のプログラムをHSPで作った人いる?
いまさら
>>168 方法3:
BocksやVirtualPCなんかの仮想PC環境で試す。
方法4:
学校や会社のPCで試す。
194 :
デフォルトの名無しさん :04/11/25 13:40:54
HSPでダウンロード速度測りたいんだけど、どうすればよかとですか?
>>187 俺 が や っ て や る
なんつってな(´Д`
196 :
& ◆LMRaV4nJQQ :04/11/25 19:28:24
>>194 祈れ そして念じろ 誰かサンプル書いてくれますようにと(藁
>>194 一定サイズのファイルを鯖から落として、そのタイムをローカルで計測しろ。
198 :
デフォルトの名無しさん :04/12/16 11:49:02
MCIのコマンド調べてたら、MIDIファイルなんかのファイル名は絶対パスで指定しろと書いてあったんだが、 HSPでMCIにコマンドを送る場合、ファイル名は相対パスでなければ動かない。 絶対パスでは無理なのか?
試せばいいじゃん。 終了w
200 :
デフォルトの名無しさん :04/12/16 19:56:03
>>199 無理だったんだよ。
する方法がないのかと思って。
ない。 終了w API直呼でどうヨ
202 :
デフォルトの名無しさん :04/12/16 20:12:09
普通に絶対パスでできたけど?
203 :
デフォルトの名無しさん :04/12/16 20:38:08
指定プロセスのあるアドレス部分のメモリに ブレイクポイントを仕掛けることってできますか?
204 :
デフォルトの名無しさん :04/12/16 20:54:41
205 :
デフォルトの名無しさん :04/12/16 23:57:19
>>204 2.61↓のようにやったらできる
mci "open filename alias a"
mci "play a"
filenameにスペースが入るときは\"で囲むのと
\が\\になってるかも一応確認しとこう
206 :
デフォルトの名無しさん :04/12/17 22:05:44
207 :
デフォルトの名無しさん :04/12/25 11:27:38
指定プロセスのあるアドレス部分のメモリを書き換えるにはどうすればできますか?
208 :
デフォルトの名無しさん :04/12/26 16:32:47
>>208 知人にあるアプリケーションをもらったのですが
>>207 HWND hWndTarget = FindWindow(NULL, "ラグナ○クオンライン(タイトルバーの文字列ね。)");
DWORD pID;
GetWindowThreadProcessId( hWndTarget, &pID );
char hpDataBuf[64];
HANDLE hProcess;
DWORD dataSize;
hProcess = OpenProcess(
PROCESS_ALL_ACCESS,
FALSE,
pID
);
ReadProcessMemory(
hProcess,
(LPCVOID)0x069B1FA8,
dataBuf,
64,
&dataSize
);
>>207 書き込むときは、
WriteProcessMemory使えば良い。
新しい開発環境とかなんかできた?
214 :
デフォルトの名無しさん :05/02/11 12:25:45
karaage
215 :
デフォルトの名無しさん :05/03/20 18:10:10
文字変数→数字変数 に変換するにはどうしればいいの?
216 :
デフォルトの名無しさん :05/03/20 18:17:55
Pval構造体から直接変数の種類を弄る
>>215 MOJI="(・∀・)イイ!"
MES MOJI
MOJI=012345
MES MOJI
>217 u~~ん そうではなくて a="999" ↓?? a=999 ってしたいと思ってる >216 Pval・・・ドカーン!
マニュアル嫁 初級以前の問題だ
220 :
デフォルトの名無しさん :2005/04/04(月) 22:11:18
>>218 MOJI="012345"
MES MOJI
INT MOJI
MES MOJI
STOP
thx
このスレ・・・・・・ ク オ リ テ ィ 高
DirectInputでキーボードのキー情報を読んでるソフトに JoyAdapterみたいに、HSPからキー情報を送りつけて制御してやりたいんだが、 どうしたらいいんだろうか。 WinAPIを叩いてなんとかなるのかな。
本家にも書いてたな? まぁ教えねーけど
AMDDRAW.HPIの最新版、持っている人いませんか リンク切れで入手できません。
代理公開してたところも無くなってるな。>AMDDRAW.HPI マンドクサくなったんかね。
なければ作ればいいのですよ。
ActiveBasic使います。
230 :
デフォルトの名無しさん :2005/06/01(水) 23:46:27
うんこ出た。
嵐で太。
232 :
デフォルトの名無しさん :2005/06/03(金) 23:49:49
うんこ出た。
233 :
デフォルトの名無しさん :2005/06/04(土) 07:45:34
稍紫陽花稍紫陽花稍稍稍稍稍!
234 :
デフォルトの名無しさん :2005/06/04(土) 23:41:52
うんこ出た。
235 :
うう :2005/06/05(日) 00:06:13
あらすなよ~AMDDRAWかあ。う~ん。HSPも、いろいろあるんだね。objectではない分嫌われがちだよな・・・。
236 :
デフォルトの名無しさん :2005/06/05(日) 01:11:44
うんこ出た。
β9出たな。 やっとユーザー定義関数が実装された。
238 :
デフォルトの名無しさん :2005/06/05(日) 23:35:12
うんこ出た。
在日必死だな…
240 :
デフォルトの名無しさん :2005/06/06(月) 23:40:42
うんこ出た。
#include "hsp261cmp.as" と入れると、 #HSP script preprocessor ver3.0b9 / onion software 1997-2005(c) #Source file not found.[userdef.as] #Error:symbol in use [alloc] in line 76 [D:\P_FS\hsp30b9[1]\common\hsp261cmp.as] #Fatal error reported. #Error:symbol in use [alloc] in line 1 [hsptmp] #Fatal error reported.
242 :
デフォルトの名無しさん :2005/06/12(日) 23:50:19
うんこ出た。
243 :
デフォルトの名無しさん :2005/08/10(水) 09:19:23
あげちゃうぞ
244 :
デフォルトの名無しさん :2005/08/31(水) 01:05:42
うんこ出た。
何もネタないのか?ここ?
246 :
デフォルトの名無しさん :2005/09/01(木) 23:50:53
うんこ出た。
247 :
dqb :2005/09/03(土) 00:01:18
HSP3用の逆コンパイラなるもん、作れるのかな? 作れたら、ネ申級だよな。ラベルまで復元できたら鬼だな
248 :
デフォルトの名無しさん :2005/09/03(土) 00:10:54
うんこ出た。
dqb = ドキュンボーイ
sdim dqb だろ
251 :
デフォルトの名無しさん :2005/09/03(土) 09:50:58
252 :
デフォルトの名無しさん :2005/09/03(土) 23:24:19
うんこ出た。
半透明なテキストボックスを作りたいんですが 半透明のフォームの上におく透明テキストボックスは どうすれば作れるのでしょうか? メモリノートパッドにinput感覚で入力する方法があれば 出来そうなのですがそのやり方もわかりません ご教授ください
254 :
デフォルトの名無しさん :2005/09/04(日) 23:39:12
うんこ出た。
255 :
デフォルトの名無しさん :2005/09/05(月) 10:58:38
256 :
デフォルトの名無しさん :2005/09/05(月) 23:20:29
うんこ出た。
確認しておくが、 HSPの標準描画命令での描画ってGDI描画だよな?
258 :
デフォルトの名無しさん :2005/09/21(水) 23:50:55
うんこ出た。
259 :
デフォルトの名無しさん :2005/09/22(木) 00:02:33
おいおい拭いとけよ
260 :
デフォルトの名無しさん :2005/09/22(木) 00:22:49
さらに出た。
261 :
デフォルトの名無しさん :2005/09/22(木) 20:53:03
とどまる事を知らない肛門 とめどない便意
262 :
デフォルトの名無しさん :2005/09/22(木) 23:51:52
ちょっとこぼれた。
>>261 がまんすると体に悪いので、ところかまわず噴射してください。
264 :
デフォルトの名無しさん :2005/09/23(金) 23:30:48
ここ埋めようかなw
素直にSDK、DLっとけばよかった。何年もかかってしまった orz IAgentBalloonEx::SetStyle BALLOON_STYLE_BALLOONON = 0x00000001; The balloon is supported for output. BALLOON_STYLE _SIZETOTEXT = 0x0000002; The balloon height is sized to accommodate the text output. BALLOON_STYLE _AUTOHIDE = 0x00000004; The balloon is automatically hidden. BALLOON_STYLE _AUTOPACE = 0x00000008; The text output is paced based on the output rate.
なんでHSPスレは必死なやつが湧くんだ? 最近久々に来たらなんだかなぁって感じだ
268 :
!dama !omikuji :2006/01/02(月) 09:21:29
はいはいあけたあけた。 buffer 2, , , 0 print "あけました" screen 0, 320, 240, 0 title "Test" x = 112 : y = 100 repeat repeat 12 nstr = cnt repeat 16 redraw 2 color 255, 255, 255 : boxf pos nstr * 8 + x, 0 + y : gzoom 264 - cnt * 16, 528 - cnt * 32, 2, nstr * 8, 0, 8, 16 pos 0 + x, 0 + y : gcopy 2, 0, 0, nstr * 8, 16 redraw 1 : wait 1 : loop wait 1 loop ソース汚ッ!
269 :
デフォルトの名無しさん :2006/01/04(水) 16:22:00
>>268 loopが1つ足りない
にしてもこのやり方カコイイな
gzoomなんて思いつかんかった
>>268 良いもの見させてもらった
無限ループは
*@
~
goto *@b
で括るとかっこいいかもしれない。goto文使いたくなかったらまずいけど
271 :
デフォルトの名無しさん :2006/02/21(火) 15:25:37
てかここって、初心者ばっかじゃん
272 :
デフォルトの名無しさん :2006/02/22(水) 23:18:54
確かに ここは初心者ばっかだな 俺は今プロセスメモリエディタ&サーバとクライアント間での ファイル&データ送受信 相手のマウス&キーボード完全操作 こんなソフトを作っています
追加機能の要望ってどこに出せば良いのだろう? スライドバーが欲しいんだが。音量の調整とかに使うような奴。
274 :
デフォルトの名無しさん :2006/03/26(日) 19:51:15
midiクロック送信のプログラムをつくってます。 Hspから <api>settimer関数で( 60*1000/tempo/24)ミリ秒 ごとにF8とFEを音源に送信するんですが 小数点以下部分のマイクロ秒の誤差を表現できないため 送信間隔の精度の高いクロック送信ができません。 何かいいアドバイスありませんか?又は そういう機能拡張とかありますか?
QueryPerformanceCounterとかで精度の高い現在時刻を得る。 精度の悪いタイマーはあきらめてひたすらループまわす。 await 0ならねじ込めるかも。
276 :
デフォルトの名無しさん :2006/03/27(月) 20:56:34
ifの計算部分で演算の記号を省略できるそうですが、 if a : end この場合、aが0だと終了する、ということでしょうか?
きくよりやってたしかめろ
278 :
デフォルトの名無しさん :2006/03/27(月) 21:04:09
いや、aが0でも実行されないから聞いてるんですが
なら違うんだろう。aをかえて試せばよいだろうが
280 :
デフォルトの名無しさん :2006/03/27(月) 21:39:00
いろいろ試しても解決できないから来たわけで。
>>277 こういうの自分で試して、勝手に思いこむ方が怖い気がするんだがw
どっかに明記されてないなら未定義が正解じゃない?
まぁでも普通は0が偽だ。つまり276は逆。
283 :
デフォルトの名無しさん :2006/03/28(火) 12:32:40
>>275 回答どうもです。
QueryPerformanceCounterを使ったhspスクリプトをみつけて
wait 0の処理速度を計測してみたら(コンパイル後)
0から2ミリ秒かかりました(^^;
hsp上では無理そうです・・
settimerはタイムごとにメッセージを発行してくれるので
正確にできるのですが、QueryPerformanceCounterを使うとなると
自作dllを作るしかなさそうですが、dll上でループするとなると
マルチスレッドで動作させるのがよくわからずもはや苦戦です汗
んじゃsettimerで呼ばれた先でQueryPerformanceCounterでループまわしてみたら?awaitはさまずに。 0.100 0.200 0.300 にイベント発行したかったら 0.090 0.190 0.290 にタイマー受け取って、ちょうどいい時間までループするとか。
285 :
デフォルトの名無しさん :2006/03/29(水) 03:25:44
なるほど! マイクロ秒だけウェイトかければいけそうですね 組み合わせる事考えてなかった(^^; やってみますサンクス!
286 :
デフォルトの名無しさん :2006/03/29(水) 05:07:22
真鍋と接触を謀る HSPって簡単で面白いよ。と HSPのゲームサンプルを2、3暮れてやる(ノベル系がいいかも) 奴なら食い付きそうだ ブログやTVでHSPで作ったんだよ。 と自作のソフト披露 キタ━━(゚∀゚)━━!!っとなんねーかなww
とあるネットゲームのパケットを拾ってきてプレイヤーの位置とかを レーダーっぽく表示させる支援ソフト作ってます。 とりあえずパケットは拾えるようになったのですが、 肝心の座標が単精度浮動小数点数の模様。 倍精度なら x=0.0 とした実数型の変数にmemcpyで 直接座標の値を書き込めばいいだろうと思ってたのですが 単精度ではそうもいきません。 何か良い方法はないでしょうか?
>>288 ですが、自己解決しました。
ビットシフトを使って単精度のバイナリを
倍精度のバイナリに修正することでうまくいきました。
290 :
デフォルトの名無しさん :2006/04/10(月) 16:35:35
HSPで、Webメールを普通のメールソフトっぽく読みこめるようにするの作ってるんだけど WEB側の入力フォームにhspからデータを送るのがうまくいかないっす。 同じような物(web側フォームにデータを送る)作った経験のあるかたいませんか?
>>290 普通そういうのクッキーとかでセッション管理してない?
スパム対策のためにWEBフォーム以外からの送信をはじくような仕組みも入ってそうだし。
カードゲームを作ろうと思うのだが・・・ なにかおすすめのオープンソースかなにかないか?
誰か、希望のWEBページを開けるHSPのソースをうp汁
マルチポストは人間のクズ
HSP3のプラグイン初挑戦中なんだけど buffer命令使っても&exinfo->actscrに反映されてない gselならちゃんと反映されてるんだけど、昔からこんな仕様だった?
>>296 作ってる人じゃないけど、予測。
WinSock.dll か DirectPlay とかでサーバー用アプリのホストに
クライアントとして接続するんでね??
っかHSPユーザー 知恵がすげぇ・・
まぁ俺もMSNメッセンジャーの今聞いてる曲のとこに好きな文字表示させたりして
遊んでますがww
>>297 >まぁ俺もMSNメッセンジャーの今聞いてる曲のとこに好きな文字表示させたりして
DDEクライアントで文字を送っているのか?
MSN Messengerの好きな曲の表示、自分も気になる。何やってるんだろ。 どっかに日本語のドキュメント無いかなぁ・・・
300 :
デフォルトの名無しさん :2006/09/21(木) 14:55:09
hgimg3を使って、数学関数を立体化したいと思います。 そのため、hgimg3のaddplateで、平面ポリゴンをいっぱい作りたいのですが 600個ほどポリゴンを発生するとシステムエラーになります。 この辺が限界なのでしょうか?
環境:WindowsXP&HSP3 inputで入力した文字列をcnvstowしてUnicodeのコード値を表示したいんだけど、 inputにアラビア語とかを入力すると、バッファには0x3f,0x3f,...で格納されてしまって 文字列データとして取得できないんです。 日本語とASCIIのコード値は期待通りに表示できてます。 なにかいい手はないものでしょうか?
全然関係ないかもしれませんが、 俺のPCでMCI.exeとかいういかにもあやしいプロセスが立ち上がってるんだけど、 これ、ウィルスじゃ?(でもノートンは拾わない) 誰か知ってる方教えてください。
MCIで動画のオーバーレイ再生がしたいんだけど、ぐぐってもやり方が見つからない。 ウィンドウの方は特定の色で矩形に塗りつぶせば行けると思うんだけど、肝心のMCIコマンドがわからん。
304 :
デフォルトの名無しさん :2006/09/27(水) 12:41:45
HSPで中空扇形を書いて中も塗りつぶしたいのですが、どうすりゃいいっすか?
305 :
デフォルトの名無しさん :2006/09/28(木) 12:59:54
306 :
298 :2006/09/30(土) 04:29:19
>>299 MSNにhspでもって好きな文字列表示させることが出来た。
まぁ、本音を言ってしまうと、他人のスクリを上手い事合成させただけだが
ただ、動作的に常に渡しているからもんだいなのかもしれない。。。
307 :
七塩 :2006/10/09(月) 16:35:36
ほぉ。。。 あの∩( ´Α`)先生 しつもんです!!
309 :
298 :2006/10/21(土) 21:58:20
>>307 マンピーDウキーみたいな事ほざいたらぶっ飛ばすからな
なぁ、おまいら コンパイル+実行ではこちらの意図どおりに動くのだが 実行ファイル生成してそれを実行すると正常にファイルを読み込んでくれない部分があるのだが どう思う? やってることは、bloadで2byteずつ読み込むだけなんだが…
ソースさらせ
exedirは変化するよ。 コンパイル+実行だとC:\Program Files\hsp261になる。 実行ファイル生成すると実行ファイルのパスになる。
314 :
311 :2006/11/05(日) 00:05:36
>312 HSPバイトコードの逆コンパイラだから晒すのはまずいw >313 どうも、それ関係だった模様 ファイル名にフルパス入れたら直ったよ;; 大丈夫なようにカレントフォルダをオプションで指定して解決してたつもりだったのだが… カレントフォルダを変える操作をしてないし、その直前の部分ではちゃんと読み込む謎仕様 とにかくthx
315 :
311 :2006/11/05(日) 00:15:04
なお、問題となった部分だけ ちなみに、cur_dirを調べて見たけど変化なかった…まったく原因がよく分からん bload file,cmd,2,it it += 2 flag_m = cmd >> 15 & 1 flag_4 = cmd >> 14 & 1 flag_2 = cmd >> 13 & 1 cmd &= 0x1FFF if flag_m == 1 { bload file,d,4,it it += 4 } else{ d = 0 bload file,d,2,it ;ここでカレントフォルダが変わってるっぽい it += 2 }
316 :
311 :2006/11/05(日) 00:16:30
何度もごめんなさい ;ここで(ryと書いてあるとこの上のbloadが失敗してました
まだ人いるかなここ…… Windows PowerShellの出力をHSPで得る事って出来ませんかね? パイプの中身がテキストデータじゃなくなったせいか、パイプ利用の標準出力リダイレクトだと失敗する 使えたらすげー便利だと思うんだけどなぁ……
createprocess apiでシェルを起動(引数にps1スクリプトファイルのパスを指定) すればリダイレクトできる感じだが。確認したのはget-commandコマンドのみの スクリプト。 ただし出力テキストが表示用にフォーマットされてしまっている罠。
319 :
317 :2006/11/21(火) 11:22:59
>>318 あーなんかカンチガイしてcmd.exe渡してました(´Д`)powershell.exeを渡せばいいんですね
取得出来ました thx
320 :
317 :2006/11/21(火) 18:46:49
PowerShellの起動がめっさ重いみたいなんで、 裏でPowerShellプロセス動きっぱなしでメッセージ投げる->出力を取得 とやろうと思ったのですが、入力待ち状態を検知出来ない(´Д`) WaitForSingleObjectでもWaitForInputIdleでも駄目 やり方が悪いんだろうけどまるで分からないや(´Д`)道のりは険しそうだ
321 :
318 :2006/11/21(火) 20:21:10
>>320 > 裏でPowerShellプロセス動きっぱなしでメッセージ投げる->出力を取得
え? そんなことできるの?
322 :
317 :2006/11/21(火) 20:35:58
出来るかも分からずに挑戦しちゃってます(´Д`) やっぱりコンソールのプロセスが終了してないと出力を取得出来ないんでしょうかこれは
スレ違いだが、PowerShellの正式版1.0には日本語のヘルプが ついてるね。
getkeyをフォアグラウンドのときのみ反応させる方法はありませんか。
ginfoでどうか。
BASSというオーディオライブラリを利用したいのですが、命令を定義できません。 例えばBASS_GetVersionという関数の場合 #uselib "bass.dll" #func BASS_GetVersion BASS_GetVersion 0 とすると、「bass.dll_BASS_GetVersion@16が見つかりません。」と表示されます。 何がいけないのでしょうか。
HSP 3.xだよね? これでいけるみたいだけど。 #uselib "bass.dll" #func BASS_GetVersion "BASS_GetVersion" BASS_GetVersion dialog strf("[%08x]", stat) end #funcのヘルプみてみそ。dll側の関数名は""で囲む。引数がなければ そのあとには何もつけなくてよし。
すみません。2.61です。 2.61では""で囲うとコンパイルエラーが出ます。 #Error during define function ( line 2 [basstest.as]). BASSを導入したいプログラムが1400行を超えるプログラムなので3系に移行する気はありません。 3.XではC言語風な部分もあってそそられるものはあるんですけどね。
これで試してみて。 #include "llmod.as" ll_libload dll,"bass.dll" dllproc "BASS_GetVersion",prm,0,dll ver = stat ll_libfree dll str ver,24 dialog ver end
>>329 できました。ありがとうございます。
なぜ#uselibと#funcでは出来ないのでしょうか。
自己解決しました。 #uselibと#funcはhsp用に作られたDLLじゃないといけないんですね。
DLLが返したFloat値を1000倍して整数に丸める方法を教えてください。
何でもかんでもコンピュータに任せようとする甘ったれた頭をどーにかしろ
334 :
333 :2006/12/29(金) 15:12:21
誤爆ったorz
http://ja.wikipedia.org/wiki/IEEE754 wikipediaに浮動小数点のフォーマットが載っていたので、自力で実装してみました。
fv=1234.567f
exp=((fv
>>23 )-127)
fraction=((fv&$7FFFFF)+$800000)
seisu.1=(fraction>>(23-exp))
seisu.2=1000*((fraction>>(13-exp))&$3FF)/1024
seisu=seisu.1*1000+seisu.2
if seisu<0 : seisu=0
print "値*1000="+seisu
;表示「値*1000=1234566」
符号ビットは無視したので正の値のみ変換できます。
精度は±1といったところでしょうか。
最後の一桁はなくてもいいようなものなのでこれで十分です。
>>333 プログラマに向かって言うことじゃないなw
337 :
デフォルトの名無しさん :2007/01/01(月) 14:34:39
おまえら正月からこんなスレ見てんの?(藁プゲラチヲ
と、正月からこんなスレを見ている
>>337 が申しております。
と、正月からこんなスレを見ている
>>338 が申しております。
と、正月からこんなスレを見ている
>>339 が申しております。
と、正月からこんなスレを見ている
>>341 が申しております。
スルー!?
343 :
326 :2007/01/02(火) 13:05:51
おかげさまで今までMCIを使って再生していた音楽ファイルをBASSで再生できるようになりました。 MCIではできないOGGの再生が出来、さらに速度や音程までもを弄ることができました。 ゲームのBGMと効果音を両方ともBASSに移行し、BGMと効果音が合成されて出力されるため、 複数同時再生に対応していないオーディオデバイスでも問題なく再生されます。 また、USBオーディオデバイスなどのレスポンスが悪いデバイスで効果音を連続して鳴らしたときに 引っかからないようになりました。
BASSやFMODって制作物がフリーじゃない場合は 使用料払わないとならんのだよな。
HSPでフリーじゃないって…
>>345 は吉里吉里でフリーじゃないって…Nscでフリーじゃないって…とかエロゲのソフトハウスにも文句言うのか?
347 :
326 :2007/01/19(金) 23:29:02
>>346 エロゲはCGとシナリオとかに対して払ってるんだろ
なんで関数が見つからないの? dllproc "CreateEvent",prm,4,D_KERNEL
350 :
349 :2007/02/28(水) 02:07:18
CreateEventA(W)なんだね。 こんなことで無駄に時間使ったなw
最小化時にwinx,winyが正常に取得できないのはなぜ?
>>352 winx,winyじゃないんだけど、仕様なのか。
なんでこんな厄介な仕様なんだろう。
あと、Altキーを押したときにプログラムが止まらないようにする方法はないですか?
Altキーを押しても止まらないだろ
>>354 それがとまるんだなー
知ったか君キタ━━━━(゚∀゚)━━━━ッ!!
--- for HSP 3 ---
repeat
wait 1
title ""+cnt
loop
----------------
>>354 夫失礼
押しても放さないと止まらないな
メニューのあるアプリでAlt押してみ。つまりWindowsにキー渡さなきゃいい #define WM_SYSKEYUP 0x0105 #define KEY_ALT 18 //実測値だから環境によって違うかも oncmd gosub *alt, WM_SYSKEYUP repeat await 16 title ""+cnt loop *alt if wParam == KEY_ALT : return 0 : else : return //returnのみでDefWindowProcに渡す // mes "wParam"+wParam : return 0 これでおk
>>357 oncmd使うとなるとHSP2じゃ書けない感じ?
いまだにHSP3に移行できない俺がいる。
>>358 HSP3から入ったからワカンネ。GetMessageを使えばなんとか・・・ならなさそう・・・
半年くらい前に1400行くらいのプログラムを移植しようとして挫折したんだよな。 2でできて3で出来ないことがあってどうにもならなかった記憶が・・・ 今回のは300行くらいだからとりあえず駄目元で移植してみるか。
361 :
デフォルトの名無しさん :2007/03/04(日) 19:47:39
みんなHSP以外に使った事のある言語って何がある? 日本語とか無しな
HSP3うぜー エラーがどこなのかわかんねー Line:173とか出るのにコメントアウトするとLine:172になる イミフ
>>361 C言語。使ったことある、ってレベルじゃないが。あとN88BASIC
>>362 前の行のLine:171にエラーがあるから、次の行に進めなくてエラーになってるんじゃないのか?
>>363 エラーがあったのは177だった。
HSP3ってなんで下位互換が全然ないの?
ll_strは命令自作したからいいけどstrtointが移植できないorz
>>364 StrToIntって文字列を整数にする関数でいいんだよな?
int( )で文字列でもint型に変換できる
strtointは基数が設定でき、デフォルトで10進数になっている。 さらに文字列が0xで始まる場合、16進数とみなして変換してくれる。 要は型変換だけでなく10進16進を自動判別したいという話。 もちろんint()は試したけど、16進には効かなかった。 移植の大変さを考えると新機能が使えなくてもHSP2でいいやって気分になる。
368 :
デフォルトの名無しさん :2007/03/09(金) 19:31:07
HSP3.0にmax関数とmin関数とmod関数が無いことに気付いて愕然としたおいらが来ましたよ。 つーかいいかげんboxfコマンドだけじゃなくてboxコマンドを実装してくれ。あるべきものが欠けてる仕様は見てて気持ち悪いぜ。
おにたま氏って他の命令の組み合わせで簡単に代用できる 命令を作ることにはあまり積極的でない気がする。
>>369 それならそれで、OpenGLに対するGLUTみたいに、手抜き用の公式ライブラリを
添付するとか、やりようはいくらでもあると思うんだが。。。
ノベルゲーに必須の emes 命令はヘルプに出てこないし。もっとやる気出そうぜ!
>>370 > ノベルゲーに必須の emes 命令はヘルプに出てこないし。もっとやる気出そうぜ!
最新版βではワンキーヘルプに出てくるよ。
新しい「検索結果」表示はうざいな。最初から横に見えてる必要がない。 ウィンドウサイズを小さめにしてると肝心の本文が変なとこで改行されるし。 まあ本文が固定の行長でフォーマットされてるのもタコだけど。
374 :
デフォルトの名無しさん :2007/03/16(金) 12:40:43
ちまちま書いてたHSP3.0機能補完モジュールがでかくなってきた件について。 つーかcsvstrの使えなさはなんなんだ。デリミタ指定できないし、コマンドラインのパースもできないし…。
HSP2.61で手軽にアプリケーション間通信する方法ないですか。 DLLなしでAPIを数回呼び出すだけでできるとうれしい。
>>374 モジュール書くんなら、
拡張命令のcsvstr使うよりも、
標準命令のgetstr使って書いたほうがいいんでないの
引用符が絡む処理なんかができないのは同じじゃない? 結局自力で1バイトずつチェックしていくしかない罠。
>>376 ヨじゃないとできないみたいですね。あきらめます。
380 :
デフォルトの名無しさん :2007/04/03(火) 14:45:04
ActiveBasic
381 :
デフォルトの名無しさん :2007/04/06(金) 20:15:14
まとめての質問で申しわけないのですが、やりかたを教えてください。 1)bgscr 0 のウィンドウを出した状態でタスクバーを消したい 2)1の状態でALT+TABの時には選択できるように表示しておきたい 3)タスクバーの一覧、ALT+TABの時の一覧を取得したい。 4)現在選択中の他アプリのハンドルを取得したい 5)ツールチップを表示させたい 6)(net useでマウントするよりスマートな方法で)共有フォルダを扱いたい 7)文字にリンクを貼りたい 一つでも良いのでお願いしますm(_ _)m
>>381 1.そもそもWindowID0はbgscrできないだろ
2.WindowID0以外でフルスクリーンにしてると仮定して、普通はそんなこと出来ないから、Alt+Tabが押されたらタスクバーを隠さないようにウィンドウをリサイズすればよし
3.WindowsAPIを使ってください
4.WindowsAPIを使ってください
5.tooltip命令があります
6.よくわからんけどマウントせずに
\\ComputerName\SharedDirectory\Filename.ext
に直接アクセスするのじゃだめなのか?
7.わからん
>>382 回答ありがとうございます。
>1.そもそもWindowID0はbgscrできないだろ
>2.WindowID0以外でフルスクリーンにしてると仮定して、普通はそんなこと出来ないから、
>Alt+Tabが押されたらタスクバーを隠さないようにウィンドウをリサイズすればよし
誤解させてしまいすみません。
bgscr 1,200,200 とやると、枠の無い、非フルスクリーンのウィンドウが出ますよね?
某付箋紙アプリなどではこのような付箋ウィンドウがいくつも表示されているのに
タスクバーにタスクスイッチが一つも出てこないので、それをマネしたかったのです。
ちなみに今はタスクバーがこんな感じになってしまっています↓
[[田ミ スタート] [付箋紙1][付箋紙2][付箋紙3][付箋紙4] ]
>3.WindowsAPIを使ってください
>4.WindowsAPIを使ってください
うぐぅ。。。調べてみます。
>5.tooltip命令があります
HSP3.0のヘルプには載ってませんでした><
>6.よくわからんけどマウントせずに
>\\ComputerName\SharedDirectory\Filename.ext
>に直接アクセスするのじゃだめなのか?
うお!?できた!HSPスゴス!!
>7.わからん
やっぱりクリック位置から逆算するしかないんだろうか。。。
>>383 とりあえず標準命令じゃできなさそう。
WindowsAPIを駆使するしか・・・
>bgscr 1,200,200
WindowID1って使っちゃだめじゃなかったっけ?
>HSP3.0のヘルプには載ってませんでした
tooltipはHSP2.61にはあるけど。
3.0は未だ試したことしかないからわからん。
>うお!?できた!HSPスゴス!!
いやこれはWindowsの所為だろ
とりあえず、枠無しウィンドウでタスクバー非表示 #packopt name "タスクバー非表示テスト" #packopt hide 1 //初期ウィンドウ非表示 #uselib "USER32.DLL" #func SetWindowLong "SetWindowLongA" int, int, int #define GWL_STYLE -16 #define WS_POPUP 0x80000000 #define WS_VISIBLE 0x10000000 #func SetWindowPos "SetWindowPos" int, int, int, int, int, int, int #define SWP_FRAMECHANGED 0x0020 screen 0,200,200,8 //ツールウィンドウを作る SetWindowLong hwnd, GWL_STYLE, WS_POPUP | WS_VISIBLE SetWindowPos hwnd, 0, ginfo_wx1, ginfo_wy1, 200, 200, SWP_FRAMECHANGED cls 1 button "終了", *exit stop *exit end
>>366 #module
#uselib "crtdll.dll"
#cfunc strtol "strtol" sptr,sptr,int
#deffunc _strtoint str strtoint_s,int strtoint_base
strtoint_b=strtoint_s:strtoint_b=strtol(varptr(strtoint_b),0,strtoint_base)
return strtoint_b
#define global strtoint(%1,%2=0) _strtoint %1,%2
#global
そんなに移植が大変か?
2chブラウザにaplkeyで”ctrl+r”のキーコードを送って同一スレを定期的にリロード したいのですが動作しません 更新チェックや新着アリスレのリロードはできるのですが2重押しのキーコードを 判別してくれません aplkeyではできないのでしょうか
>>387 HSP2.61でやったときは
Ctrl押下
R押下
R開放
Ctrl開放
という手順で組み合わせキー使えたけど。
そもそも「”ctrl+r”のキーコード」なんてない
それぞれ1キーに1コードだから
いいよなこのスレ HSPの限界に挑戦してるって感じで
HSPでHSP用のプラグインみたいなのが作れたらいいな。 DLLのラッパーとして使いたいだけだから演算とDLL呼び出しさえ使えればいいんだけど。
それってモジュールでいいのでは?
機能的にはモジュールでいいけど、再ビルドなしで動的リンクできるといい。 完成したソフトのプラグインとして使いたいので。 やっぱCでDLL書くしかないか。
ああ、なるほど。ちなみにActiveBasicでもDLL作れるよ。やりたいこと できるかどうかはわからないけど。
394 :
デフォルトの名無しさん :2007/09/02(日) 19:02:37
だれか3.1でも使える正規表現環境つくってくれくれ
DLL使えば一発じゃね? bregexpとか
エクセルみたいにクリックしたセルが入力出来るようになるリストって作れないのかな。
397 :
デフォルトの名無しさん :2007/09/08(土) 04:29:14
>395 hspbre.dllっていう、bregexp.dllを使うためのdllが3.1からつかえなくなってしまったのです。 3.0までつかえてたのに、なんかものすごくくやしいのです。
398 :
395 :2007/09/09(日) 21:28:23
自分も使いたいと思ったのでモジュール作ることにした。今のところ なんとか作れそうな感触だけど期待しないで待ってて。 てもういないか。
うぉおお、できそうなんだ、すげぇ。さすが一級の使い手はスキルも抜群だな。 すごく乙、ゆっくりやってください。
dllprocって毎回関数へのポインタを検索してるのかな? だとしたら何回も呼ぶ関数に使うと遅くなるのか。
外部DLLでMP3をデコードして波形を描画するプログラムを書いてるんだけど、 1.DLLでリサンプルなしでデコード 2.描画用の波形データ(8bit1khz)に変換(リサンプルじゃなくて1msごとに16bitの上位バイト抜き出し) 3.buffer上に10ms/pxで描画 という処理をしてる。 3分くらいの曲で 1.が4.1秒 2.が14.3秒 3.が1秒くらい 描画に時間が掛かると思っていたが、意外にも単純なifの繰り返しで作った変換ルーチンが時間が掛かってた。 ここだけC言語でマシン語作ったほうがいいのだろうか。
>402 マジで乙。早速使ってみるぜ。 ってかとても読みやすいソースコードだな。 ほんとありがとうございました。
ステータスバー内にプログレスバーを作るにはどんなAPI使えばいい?
405 :
デフォルトの名無しさん :2007/09/17(月) 20:10:52
なぁなぁ、ぶっちゃけ、HSPで基幹業務なんて作れる? 別にあおりじゃなくてさ。 職場で開発をすることになったんだけど、まともな開発環境のエンタープライズバージョンなんて買ってもらえそうにないので、無料環境をあれこれ思案してるんだけど。 内容はDBとの連携。地図データ扱うので、計算も多い。
DBとの連携を考えるなら、AccessVBAの方が実用的だと思うが。 職場のパソコンにAccess入ってるだろうし、それなら実質無料で できるし。
407 :
405 :2007/09/17(月) 20:21:33
>>406 さっそく豚楠
それが、アクセス入ってないマシンも多い。それに、アクセス自体、俺はあまり信用してない。
アクセスが入ってないなら、使用してるDBソフトは何だよ……。
409 :
405 :2007/09/17(月) 20:45:08
フリーDBあるやん?mysqlとかposgreとか。HSPからODBCで扱えないの?
2.61でmesboxのカーソルがある行を取得する方法ある?
書いていること、ちっとも わからん。 英語>中国語>フランス語>スペイン語>イタリア語>このスレ>韓国語 って感じかな。
413 :
通りすがりの者ですが :2007/10/16(火) 00:09:45
って、誰もこないし。
HSPで作ったブラウザや2chブラウザはないんか
ブラウザはサンプルとかでどぞー 自力レンダリングとかは無いと思う 2chブラウザは多分ない ここで、言いだしっぺの法則を発動、そしてターンエンド
そういやサンプル以外でブラウザって無いな。
IEコンポを使ったものなら、何回か見かけたことあるー。 (コンテストにも過去に出てたような飢餓? 2chブラウザも大分前に。ただ、2chスレッドの過去ログ上で、 DLリンクは当然のごとくnot foundだた。
418 :
デフォルトの名無しさん :2007/10/26(金) 19:16:23
なあなあ、ちょっと聞いてくれ。OpenHSPのソースを眺めていたら"prep"って文字列が見つかった んだな。プロトタイプ宣言ってコメントに書いてあるじゃまいか。どうも、#deffunc prep hoge などと使うみたいなん だな。でもどのようにしても関数(命令)が未定義ですって出るんだな。で、 よく見てみるとローカル変数でフラグを持っているみたいなんだけど、フラグを立てたきり その後は一切使用していないと来たもんだ。ちょっと期待した漏れの時間を返してく れと小一時間問い詰めたい。 _| ̄|........○))
420 :
デフォルトの名無しさん :2007/10/27(土) 21:19:39
. / ̄ヽ | あ | . 、| あ |)\ | そ | ヽ /| | う .| .l/ | | : / | `∨,、 ∧ ,、/___ ∧/-∨ ∨-ヽ / l´l| ≡ / ≡ |、/ ヽ゛ 〉 |'ノ >`ll _ / `\.|\ `'´ / ,---| `ー-'|_  ̄ ``- -‐'-'ヽ _ 〉、 ``丶、__/ ``丶、._ ●
>>419 レベルの低さが如実に表れているね
HSP厨の恥曝しが
た て よ み
リストボックスでVで始まる行があると、Ctrl+V押したときにその行が勝手に選ばれてしまう。 せっかく自前でコピペ機能実装したのにこれじゃ全然使い物にならないから、勝手に選ばれてしまうのを止めたいんだが、なにか方法はないですか。
ソースうp
426 :
424 :2007/10/28(日) 14:57:10
全体だと軽く1000行超えるので必要部分だけ。 #include "llmod.as" #include "obj.as" #include "misc.as" #module #define GHND 0x42 ;移動可能メモリ + メモリを0で初期化 #deffunc getclipboard val,int mref hobj,16 ;クリップボードのデータを格納する数値型変数 mref format,1 ;データ形式 mref state,64 prm=0 dllproc "OpenClipboard",prm,1,D_USER ;クリップボードを開く if stat==0 : state=1 : return dllproc "GetClipboardData",format,1,D_USER ;データ取得 hobj=stat dllproc "CloseClipboard",prm,0,D_USER ;クリップボードを閉じる if hobj : state=0 : else : state=2 return #deffunc setclipboard val,int mref hobj,16 ;クリップボードにセットするデータ mref format,1 ;データ形式 mref state,64 prm=0 dllproc "OpenClipboard",prm,1,D_USER ;クリップボードを開く if stat==0 : state=1 : return dllproc "EmptyClipboard",prm,0,D_USER ;クリップボードの中身を初期化 prm=format,hobj dllproc "SetClipboardData",prm,2,D_USER ;クリップボードにデータをセット dllproc "CloseClipboard",prm,0,D_USER ;クリップボードを閉じる state=0 return
427 :
424 :2007/10/28(日) 14:58:30
#deffunc getmemobj val,int,int mref data,24 ;データを格納する文字列型変数 mref memsize,1 ;メモリサイズ mref hobj,2 ;メモリオブジェクトハンドル mref state,64 dllproc "GlobalSize",hobj,1,D_KERNEL ;メモリブロックのバイト数 msize=stat if msize==0 : state=1 : return if msize>memsize : state=2 : return dllproc "GlobalLock",hobj,1,D_KERNEL ;メモリを固定 cbdata=stat if stat==0 : state=1 : return getptr pdata,data prm=pdata,cbdata,msize dllproc "RtlMoveMemory",prm,3,D_KERNEL ;メモリブロックのコピー dllproc "GlobalUnlock",hobj,1,D_KERNEL ;メモリの固定を解除 state=0 return
428 :
424 :2007/10/28(日) 15:00:12
#deffunc setmemobj val,val,int mref hobj,16 ;メモリオブジェクトハンドルを格納する変数 mref data,25 ;メモリオブジェクトに格納するデータ mref memsize,2 ;メモリサイズ prm=GHND,memsize dllproc "GlobalAlloc",prm,2,D_KERNEL ;メモリオブジェクト作成 hobj=stat dllproc "GlobalLock",hobj,1,D_KERNEL ;メモリを固定 cbdata=stat getptr pdata,data prm=cbdata,pdata,memsize dllproc "RtlMoveMemory",prm,3,D_KERNEL ;メモリブロックのコピー dllproc "GlobalUnlock",hobj,1,D_KERNEL ;メモリの固定を解除 return #global alloc tombuf,32768 tombuf="AB\nCD\nEF\nG\n\nversion\nX1\nY2" notesel tombuf notemax max
429 :
424 :2007/10/28(日) 15:01:09
dllproc "InitCommonControls",prm,0,D_COMCTL mref bmscr, 67 ttmp="msctls_statusbar32" prm=0,0,0,0x50000003,0,0,0,0,bmscr.13,1,bmscr.14,0 getptr prm.1,ttmp dllproc "CreateWindowExA",prm,12,D_USER hStatus=stat tpos=256,-1 prm=hStatus,$404,2 getptr prm.3,tpos sendmsg prm #define status(%1,%2) ttmp=""+%1 : prm=hStatus,$401,%2 : getptr prm.3,ttmp : sendmsg prm status "起動中...",0 onkey *isr_k print "Ctrl+X,C,Vが利用可能です。" objsize 640,400 listbox ln,0,tombuf lbid=stat objprm lbid,0 status "レディ",0 *waitloop await 15 goto *waitloop
430 :
424 :2007/10/28(日) 15:02:11
*isr_k getkey ctrl,17 objsel -1 lobj=stat if ((iparam=='X')&&(ctrl)) : gosub *cut if ((iparam=='C')&&(ctrl)) : gosub *copy if ((iparam=='V')&&(ctrl)) : gosub *paste goto *waitloop *cut if ((ln<0)||(max<=ln)) : return noteget ltmp,ln strlen length,ltmp hglobal=0 setmemobj hglobal,ltmp,length+1 ;終端+1 setclipboard hglobal,1 if stat : status "クリップボードが開けません。",0 : return notedel ln max-- ln-- gosub *lb cf=1 status "line"+ln+"を切り取りました。",0 return
431 :
424 :2007/10/28(日) 15:03:00
*copy if ((ln<0)||(max<=ln)) : return noteget ltmp,ln strlen length,ltmp hglobal=0 setmemobj hglobal,ltmp,length+1 ;終端+1 setclipboard hglobal,1 if stat : status "クリップボードが開けません。",0 : return status "line"+ln+"をコピーしました。",0 return *paste if ((ln<0)||(max<=ln)) : return hglobal=0 getclipboard hglobal,1 if stat : status "クリップボードが開けません。",0 : return getmemobj ltmp,1023,hglobal if stat : status "データが取得できません。",0 : return noteadd ""+ltmp,ln max++ ln-- gosub *lb cf=1 status "line"+ln+"に挿入貼り付けしました。",0 return
432 :
424 :2007/10/28(日) 15:03:52
*lb lno=ln objsel -1 lobj=stat objprm lbid,tombuf ln=lno+1 if (max<=ln) : ln=max-1 objprm lbid,ln lno=-1 objsel lobj return ;End of file
試してないが、 onkey gosub~ にしてキーを判別してCtrl+Vとかならreturn 0違うならreturn かも?
434 :
424 :2007/10/28(日) 16:15:33
>>433 onkey gosub *isr_k
にしてやると、return後の
goto *waitloop
のところで「解釈できないHSPコード」エラーが出ます。
ところでreturnを調べても引数の説明が見当たらないのですが、どういう意味なのでしょうか。
awaitも第二引数はマニュアルに載ってないのでHSPは隠し引数的な存在が多い気がします。
ちなみにwaitloopじゃなくてstopにしてやれば、コピーとかの操作後に勝手に選択されるようになるので力技で元の行に戻してやればいけそうなもんですが、
元のプログラムではwaitloopの中でポーリングしたり、一定時間おきに処理したりしてるからstopに変えるわけにはいかないんですよね。
a = 1 : b = 1 //0b0001 && 0b0001 if(a && b) : mes "" + a + " && "+ b + " == true" : else : mes "" + a + " && "+ b + " == flase" a = 10 : b = 1 //0b1010 && 0b0001 if(a && b) : mes "" + a + " && "+ b + " == true" : else : mes "" + a + " && "+ b + " == flase" a = 11 : b = 4 //0b1011 && 0b0100 if(a && b) : mes "" + a + " && "+ b + " == true" : else : mes "" + a + " && "+ b + " == flase" a = 10 : b = 5 //0b1010 && 0b0101 if(a && b) : mes "" + a + " && "+ b + " == true" : else : mes "" + a + " && "+ b + " == flase" a = 6 : b = 4 //0b0110 && 0b0100 if(a && b) : mes "" + a + " && "+ b + " == true" : else : mes "" + a + " && "+ b + " == flase" 関係ないけどv3.1にしたら論理積がビット積になっている気がする
437 :
424 :2007/10/28(日) 17:11:07
>>435 2.61使いだが、なんとなく何やってるのはわかりました。
そもそもリストボックスが先頭文字に反応しなければ何も問題はないのですが、反応しないように設定することはできないでしょうか。
クリックや上下キーでの選択をするので、選択自体をなかったことにするわけにはいかないんですよね。
やっぱりリストボックス+編集用テキストボックスという形式には無理があるのか…
>>436 HSP2.61でもなった
使い物にならんなこれじゃ
ある条件下で論理積がうまくいかなくてif2連にしたことがあったっけ
今回のは(条件式)&&(論理値)でどちらも1or0だから問題ないのかな
つーか、HSPでは && は & に変換されるんだが...
&&だろうと&だろうと &,|,^ 論理演算(and,or,xor) ってヘルプに書いてある
しかし実際はビット演算が行われている。だから repeat stick key if key&16 : mes "スペースキー" await 1 loop なんて書き方ができる。 HSPやり始め(プログラミング初心者)のころは気づかなかったが、 ヘルプおかしいね。動作自体にはいつのまにか慣れちゃったよ。
&だろうと&&だろうとビット演算なんだろうな。 やっぱり変態言語だな。
#module #deffunc LogicCheck int a, str op, int b switch op case "&" : ans = a & b : swbreak case "&&" : ans = a && b : swbreak case "and" : ans = a and b : swbreak case "|" : ans = a | b : swbreak case "||" : ans = a || b : swbreak case "or" : ans = a or b : swbreak case "^" : ans = a ^ b : swbreak case "xor" : ans = a xor b : swbreak swend mes "" + a + " " + op + " "+ b + " = " + ans return #global // 1010 1010 , 0101 0101 a = 0xAA : b = 0x55 LogicCheck a, "&", b LogicCheck a, "&&", b LogicCheck a, "and", b mes "" LogicCheck a, "|", b LogicCheck a, "||", b LogicCheck a, "or", b mes "" LogicCheck a, "^", b LogicCheck a, "xor", b "論理"演算すると・・・
動作するんならどっちでもよくね
俺は0か1を返す関数を1回かませてる。
知らんがな
ウィルスバスター2006の最新バージョンでまだ2.61の ランタイムがウイルスと誤認識されるよ。
448 :
424 :2007/11/02(金) 22:10:31
自己解決 Win32APIのスレで特定のWMをブロックすればいいと教えてもらって WMをブロックするマシン語埋め込んでリストボックスをサブクラス化したらできた このスレ使えねえな
449 :
デフォルトの名無しさん :2007/11/04(日) 04:06:25
何を今更
HSP2.61のsortnoteってバグあるな 特定の内容をソートさせると2回目で確実にヌルポインター例外で落ちる DLLも要ることだし、自力で実装すっかな
3.0使えばいいじゃん
452 :
デフォルトの名無しさん :2007/11/06(火) 21:14:45
あえてHSP2を使う理由を述べよ
サンプルが多い 使い慣れている v3にしてもバグはなくならない
2でできることが全部できるなら3に移行したいが。 まあ何千行ものソースをいまさら移植できないわけではある。 というわけで挿入ソート実装してみた。 速度のこと全く考えてなかったから96項目で20msくらいならまあ許容範囲かな。 遅かったらCで書いてマシン語貼り付けようと思ってたけどまあいいや。
知らんがな
C言語で全部書けばいいじゃん
457 :
デフォルトの名無しさん :2007/11/07(水) 16:59:09
HSP使う奴に上級者も糞もねぇよ 氏ね、カス共が!
↑VB厨
システム変数mousex,yでマウスポインターの位置取得しようとすると、ポインタがオブジェクト上にあるときに正しい位置が取得できないんだけどどうすればいい?
GetCursorPos ScreenToClient
461 :
デフォルトの名無しさん :2007/11/20(火) 13:09:57
HSP3.1とHSPletの互換性に詳しいヤツいない? テキストをpeekしながらURLエンコードするコードを書いたら HSP3.1上では正常に動くんだが、 HSPlet上でOutOfArrayBoundsExceptionをスローしてしまう場合が 発生した。いくつかの環境でテストしてもらったんだが、 発生したりしなかったりで原因が掴めない。 あと、HSPlet上でUTF8へ変換する手段ってないかな?
HSP2.61使ってるんだけど、ファイル選択ダイアログみたいに 親ウィンドウが触れなくなるような子ウィンドウを作りたいんだけど、どうすればいい?
239 名前: デフォルトの名無しさん 投稿日: 2007/12/02(日) 15:55:31 今開いているウィンドウの大きさを変えるのはどうしたらいい? ginfo_sizex=300 ginfo_sizey=200 とやっても変わらないんですが 242 名前: デフォルトの名無しさん 投稿日: 2007/12/02(日) 16:27:09 mesboxにログを表示してるんだけど 文字列を足したときについでに最終行にスクロールさせたいんだけど どうしたらいい? 463 名前: デフォルトの名無しさん [sage] 投稿日: 2007/12/06(木) 20:47:35 HSP2.61使ってるんだけど、ファイル選択ダイアログみたいに 親ウィンドウが触れなくなるような子ウィンドウを作りたいんだけど、どうすればいい?
API叩け
64bit値を10000で割って返すマシン語コードを埋め込んだのですが、「問題が発生しました」と表示されて落ちます。 どこか悪いとことがあるのでしょうか。 埋め込んだマシン語はこれをBCCでコンパイルしたものです。 #include <windows.h> unsigned long WINAPI ft2ms(unsigned __int64 *ft){ return (*ft/10000); }
アセンブラで覗いて見る
関係はないが,returnに括弧はいらねぇ
469 :
466 :2007/12/17(月) 12:03:12
ひきすう(なぜか変換出来ない)をunsigned long にしたら問題なく値が返って来るので64bitの演算で落ちてるみたいです。 returnには括弧付ける派です。
470 :
デフォルトの名無しさん :2007/12/17(月) 15:10:35
boxに複数行のテキストを表示したときに、 自動スクロールしないのは3.1のバグ? スクロールバー自体はちゃんと表示が変化しているけど、 マウスでスクロールさせようとしても全く動かない。。
471 :
デフォルトの名無しさん :2007/12/17(月) 15:11:21
box = mesboxでした。
w = "test\ntest\ntest\ntest\ntest\ntest\ntest\ntest\ntest\n" mesbox w, 300, 100, 1 動くよ?
473 :
デフォルトの名無しさん :2007/12/18(火) 15:06:41
あ、動きますね。 タイマを使ってテキスト&画面更新をしてるので、それが原因でしょうか…。
atarimaedaro
475 :
デフォルトの名無しさん :2007/12/19(水) 00:57:18
タイマでデータ更新をして、、それをスクロール可能な状態で mesboxへ反映させる方法を教えていただけませんか?
再現性のあるコードくらい書いてくれ
GetScrollInfo ↓ データ更新 ↓ SetScrollInfo
gmode 0(BitBlt)より、gmode 1(メモリ間コピー)のほうが速いことがあるとヘルプに書いてあるけど、 実際はgmode 0のほうが速かったりする
BitBltってかGDIAPIは昔ハードウェアアクセラレータ無視してたから
XP上で連続した領域コピーの場合 memcpy>BitBlt>>超えられない壁>>gmode1 memcpyよりは遅いからHWアクセラレーションではないようだ。
HSP2.61の話で悪いんだけど、ID0ウィンドウの最小化に追従するウィンドウを作ってみたんだが 他の方法かもう少し簡便な方法あったら教えて欲しいんだ(メインループ監視ではない方法で) ;// llmod+APIモジュールでAPIと同名の関数作ってあります screen 0,200,100,1 :hwnd.0=bmscr.13 bgscr 2,200,100,1 :hwnd.2=bmscr.13 ;// 親ウィンドウで上下関係 prm=0, 0, 200, 100, 0x86000000, hwnd.0, 0x00000000 _makewnd prm, "STATIC" :hwnd.1=prm prm=hwnd.2, hwnd.1 SetParent prm prm=hwnd.2, 0xFFFFFFFC GetWindowLong prm :prm.2=dllret prm.0=hwnd.1 SetWindowLong prm prm=hwnd.1, $FFFFFFF0 GetWindowLong prm :prm.2=dllret;|0x10000000 SetWindowLong prm prm.6=1+2+4+0x20 SetWindowPos prm prm=hwnd.1, 4 ShowWindow prm ID0がSTATICの上に行かないが、ID3を作りたくないので我慢 作られるSTATICウィンドウのクラス名がそのまま表に出るのも気になる
482 :
デフォルトの名無しさん :2008/02/22(金) 15:24:40
FLVをメディアプレーヤーで再生出来るcodecは導入済です。 HSP上でMCIでFLVを再生させる裏技は無いですか? win.iniで追加しようとしましたが上手く行かず。 現在ファイルをコピーしてtemp.mpgに拡張子を変えて凌いでますが、 HDDが古いPCだと再生開始まで10秒かかったりかなり遅い状態です。 現在ファイル名変えずに再生出来るのは、wmv、MPEG、ASF、AVI、MP3くらいで WAVEの再生もダイレクトにいきません。 再生したいファイルのファイル名を再生時に変更すると方法は避けたいです。 アドバイスお願いします。
codecは基本的にDirectShowを介して使うのでMCIではどんなに頑張っても恩恵は受けられません
APIの勉強でwininet.dllの実装をしてるんですが HttpQueryInfoがうまく動いてくれません。 #uselib "wininet.dll" #func HttpQueryInfo "HttpQueryInfoA" int,int,int,int,int lpdwBufferLength = 1024 sdim RequestBuf,lpdwBufferLength pRequestBuf = varptr(RequestBuf) HttpQueryInfo hHttpRequest,HTTP_QUERY_CONTENT_TYPE,pRequestBuf,lpdwBufferLength,0 こんな感じで呼び出してるんですが 実行後にstatが0でRequestBufに何もセットされていません。 直前のHttpSendRequestではアクセスしてる形跡はあります。 何かアドバイスよろです。
アクセスしてる形跡があるのは良いけど成功してんのかよ
もう一つ思ったがlpdwBufferLengthの所は出力も兼ねてるのでvarptr(lpdwBufferLength)のはず 後は知らん
アドバイス㌧クス >成功してんのかよ まずわざと失敗させて、失敗した時の挙動を確認してから うまくいくように一つずつ確認してるんでSendRequestまでは成功してます。 >varptr ポインタでlpdwBufferLengthを渡してみたんですが変化ないです。 ムズカシーネ
APIで追加したコントロールに表示するfontってどうやって設定するの?
489 :
488 :2008/02/23(土) 05:06:10
自己解決
winobjって便利だよな。
491 :
デフォルトの名無しさん :2008/03/03(月) 09:57:16
面白いねこれ。こんな感じ? #uselib "migemo.dll" #func migemo_open "migemo_open" sptr #func migemo_close "migemo_close" sptr #func migemo_query "migemo_query" sptr, sptr #func migemo_release "migemo_release" sptr, sptr #func migemo_load "migemo_load" sptr, int, sptr #func migemo_is_enable "migemo_is_enable" sptr #func migemo_set_operator "migemo_set_operator" sptr, int, sptr #func migemo_get_operator "migemo_get_operator" sptr, int ;#func migemo_setproc_char2int ;#func migemo_setproc_int2char /* for migemo_load() */ #const MIGEMO_DICTID_INVALID 0 #const MIGEMO_DICTID_MIGEMO 1 #const MIGEMO_DICTID_ROMA2HIRA 2 #const MIGEMO_DICTID_HIRA2KATA 3 #const MIGEMO_DICTID_HAN2ZEN 4 /* for migemo_set_operator()/migemo_get_operator(). see: rxgen.h */ #define MIGEMO_OPINDEX_OR 0 #define MIGEMO_OPINDEX_NEST_IN 1 #define MIGEMO_OPINDEX_NEST_OUT 2 #define MIGEMO_OPINDEX_SELECT_IN 3 #define MIGEMO_OPINDEX_SELECT_OUT 4 #define MIGEMO_OPINDEX_NEWLINE 5 (つづく)
(つづき) #uselib "msvcrt.dll" #cfunc strlen_c "strlen" sptr #const NULL 0 migemo_open NULL mi = stat if (mi = NULL) { mes "migemo_open失敗" : stop } migemo_load mi, MIGEMO_DICTID_MIGEMO, (dir_cur + "\\dict\\migemo-dict") if (stat = MIGEMO_DICTID_INVALID) { mes "migemo_load失敗" : stop } migemo_query mi, "ai" p = stat if (p = NULL) { mes "migemo_query失敗" : stop } len = strlen_c(p) dupptr rex, p, (len + 1), 2 rexstr = rex dialog rexstr migemo_release mi, p migemo_close mi end
あ、defineとconst統一するの忘れた。
>492-494 おお!ありがとう。早速使ってみるぜ。 migemo、面白いと言ってもらえてすごくうれしいです。 これ、DB検索やタイピングゲーム、もしくはオリジナルエディタの拡張機能としてなど、いろんなところで使えるなって常々考えていて、HSPでも使えたらどれだけいいだろうと思っていたところだったんです。 上の方では正規表現の話が出ていたし、hspの有用性がどんどんあがっていって一ユーザとして嬉しいことこの上ありません。 重ねて、本当にありがとうございました。
正規表現の生成だけじゃなく、検索まで面倒見てくれればもっと便利なんだけどね。 ま、別のDLLでできることだけど。 あとデフォの辞書がいまいちなのが惜しい。例えば、「ai」の項目にはそれをスペルに 含む英語の日本語訳しか入ってなくて、「あい」の読みを含む日本語が入ってない。 それらを正規表現に入れたい場合は、「あい」で引かないといけない。
HSPでWin32API直接使うと実行速度の向上は期待できんの?
測ったわけじゃないけど結構呼び出しのオーバヘッドが高そうだから遅くなる気がする。 ネイティブに命令があればそっちを使ったほうが基本的には速いんじゃない?
statはまぁとりあえずいいとして refstrとかstrsizeに返値を持つものは遅くなる ってどこかで見た覚えが。
API直接叩いてもstatしか返ってこないよ。 refstrに文字列が帰ってくる命令は、statに返ってきたポインタが指す文字をHSPのモジュール上で文字列コピーしている。 そりゃ遅くなるわけだ。
501 :
テンテン :2008/04/02(水) 00:14:30
今、HSPでオリジナルパチンコゲームを作っているのですが、 冬のソナタみたいに、動画の上に図柄を表示させたりする事って可能ですか? いろいろと試していますが、どうしても動画が2Dスクリプトより前に出てしまい、難航しています…。 どなたか可能になるやり方をご存知の方、アドバイス頂けますでしょうか。。。 よろしくお願い致します。
>>501 hmm.dll使ってDirectShowを使うと幸せになれるよ。
dll使わないでDirectShowも使えるけど難易度は格段に上がるので
初心者にはオススメできません。
503 :
テンテン :2008/04/02(水) 15:56:35
>>502 師匠と呼ばせてください。
ありがとうございます。
さっそく試してみます!
HSPの関数の実行時間を調べるプロファイラのようなものは存在しているのでしょうか。 存在していたらぜひお教えください。よろしくお願いします。
以前、冬のソナタのように動画の上に2Dスプライト(図柄)を 表示するにはどうすれば良いか、 ご質問させて頂いた者です。 hmm.dllを使用し、サンプルスクリプトをたよりに 試行錯誤しているのですが、 どうしても動画の上に画像を乗せられません… (hmm.dllについていたサンプルスクリプトでは、動画の上に動画が乗っているサ ンプルで なんとかこれを応用しようとしているのですが、もう行き詰っています) かなりお手数なのは重々承知ですが、どなたか動画の上に何かビットマップ画像 が表示される スクリプトを教えて頂けないでしょうか。 e-mailも乗せていますので、メールででも、ここに書いて頂いても構いません。 本当に、試してもいないのにお願いしていません。 かなり自分で試行錯誤して、どうしても分からなかったので書かせて頂きました。 よろしくお願い致します。
自分でどこまで出来てどこが出来ないのか、ソースなり具体例なり出さないと サンプルあってそれが理解できないなら教えてもらっても理解できるはずがない
508 :
デフォルトの名無しさん :2008/06/08(日) 03:56:31
どういうことだ?HSP3.2β1が公開されたとは何だ! …不気味なバグフィクスだ、各自警戒を怠るな
ポインタをもう少し使いやすく…
510 :
デフォルトの名無しさん :2008/07/12(土) 14:55:29
おい、お前らよろこべ。すげぇ裏技発見したぞ。 1.HSPインストール先にあるcomonフォルダを開く。 2.そこにあるhspinet.asをダブルウリック 3.Repeat/Loop内にある、 await 50 をコメントアウトする。 するとどうだ。noteload関数が正に光の速さだ。 マジですげぇからおまえらもだまされたと思って一度やってみ。新世界への扉が開かれるぜ。
511 :
デフォルトの名無しさん :2008/07/12(土) 15:00:43
うあああああああああああああああああああ間違えた、 noteloadじゃなくてnetload関数だったwwwwwすまんwwwwwww
早くなるのはnetloadだろ
リロードしてなかった/(^o^)\
>512 そうなんっすよねwほんとすまんやら申し訳ないやら。穴があったら入りたい… しかしながらほんとメガッサ早くなって俺自身びびった。HSPってすごい可能性のある言語だな。 でもあれだな、願望だがnoteload命令もこんな風にもっと早くなってくれたらなと思わんでもない。 あれ、でっかいデータを取り扱うといきなり遅くなるんだまったく
取らない方が良いんじゃない
516 :
デフォルトの名無しさん :2008/07/12(土) 16:39:50
そ、そなんか?やっぱ入れておいたほうがいいかな?orz
デメリットは?
519 :
デフォルトの名無しさん :2008/07/31(木) 11:27:56
データが流れすぎて周りが迷惑こうむる・・・のか?
ループ中は(a)wait入れろってマニュアルに書いてあるじゃん
522 :
デフォルトの名無しさん :2008/08/07(木) 15:15:42
だ、誰かたすけてくれ。 900KBのテキストをnoteloadで読み込んでlistboxに並べたいんだが、反映されるのになんと1分以上かかってしまう。 世間のエディター様みたいに一瞬でカカッっと開く方法、どうか教えてくれたのむ! こっからソース notesel iwashi noteload "iwashi.txt";こいつが900KBある objsize 640 pos 0,0 listbox index,150,iwashi objsel 0 stop
BLOADで読んで、改行で切り出して行く古典的な方法はどうでしょう
>523 か、感動した。ほんとにありがとう。 無理して一括表示にまとめようとしてたから遅くなってたんだな。 今から早速、一塊何行にするかを吟味するサ行に入ります。
>>522 深くテストしてないがこれでどう?5秒ぐらいで終わるようにはなった。
まじめにやるならLinked ListやRopeやGap Buffer使うべきだが。
$ svn diff strnote.*|bzip2|uuencode.exe -m -|putclip
begin-base64 644 -
QlpoOTFBWSZTWaqgREMAAWZfgAAySH///8hlSkq/79/6QAKZmtsV2RhJFCaT
YkwyNNQbU09NRoBoNBiACU0QISZpRo8g1NqHqBoYQaeSekNpBmlTVNDENBia
B6gBppkaMjQAAkkU8inskT0yR6mTTTQNAAAAA1FQSAihCJDCBHo8ApUhoowR
GpIiKJBGERHYdaGDaBoEgTaVlDrVrQSSTcNR2vhB5LoQOlaSXFvet9QcQnT/
T8RAXILREMvc9od52jBErU8wDciaAN/5MXBewbaZBRuiEZue3SWtkkJWjffN
q0FFZPg9ijqqqslmJLHgvJZctud3fMUos7sO2NEkrzzlEYTgTN3mwPmcCmEH
2Hbr1auwrBFJajs7SoVXG2y4oxCr0IWE0hRJRK9J257NE+KJ4WJpDMEg4sso
mWmDCX2Zx8RecgSvGMnFkLGI6T7I1UaaiT91ZzoNMTSQ+bv4Dnv1tk6OSZq9
U32KNOZqkjdrtvtKZfaysn0QmubS2lM7TRzkDVlX2yOkGuGqMg7nMA2/q5t2
3Rtbc+HSfHXVNbcNhAbS6Qzs61IbcXI0mZ0t6PywLxwXWOLxyeMtlBxB6xz+
21wQz4tVh+MLvHdd/kM2hJZ3e3lcPwLAgg4cD2NEDIRWiyo5xHtSlEFYIxjM
0qxqk4TuA/jXhoRIZj5GDCcozrGoyljWQkLb75SUPgOSAcjM+Qgy1xcxsriw
R5+MlKRnSYZTTT6hOKoZKFZdiYpkyeVAUIdO1DxxEzGqQmGN8P7UFCnI0lpK
9A0XjlfYUMYycTZRQBtGQRfNKBcYXhJsVaWktCqx01hSpYYGK3wGOBMBVjGd
sWIM3x1VMrdeduMkDWLUApRxA6f/i7kinChIVVAiIYA=
====
単純にnote命令の自動確保で足踏みしてただけだろうね
>>527 そこまで出来たらデコードされたファイルに.bz拡張子付けて
lhmeltなんかで解凍すればいいのさ
これでいいじゃない notesel iwashi noteload "iwashi.txt" objsize 640 pos 0,0 n="" listbox index,150,n repeat notemax getstr n,iwashi,p :p+=strsize sendmsg objinfo(0,2),384,0,n loop
530 :
デフォルトの名無しさん :2008/08/08(金) 14:55:02
>>526 listbox index,150,iwashi でノートから一行ずつ切り出して
リストボックスに追加してるところが遅かったから
行頭位置をキャッシュするようにして一行取り出す操作を高速化した
>>527 >>528 かcygwinでgetclip|uudecode -o -|bunzip2
OpenHSPのtrunkに対してのパッチだから
patch < hoge.patch で適用してVC++でコンパイル
531 :
527 :2008/08/08(金) 19:49:00
遅くなってすまない。レスくれた皆様ほんとありがとう。 >529 >530 すばらしいソースの例をありがとう。 本体に組み込んでみたらあまりの素早さに驚いた。 先にリストボックスを描画してるってことは、あとのRepeatで1行ずつnに流してるってことだよな。 そしてsendmsg命令を、恥ずかしながら今回はじめて見た。 ほんとに快適に動作するソフトを作るには各Windowsのパーツへのメッセージについてちゃんと勉強しないといけないなと痛感したよ。 ともあれ、この度はすれ違いにもかかわらず丁寧に対応してくれてほんとにたすかった。自分ももっと勉強してよりいいソフトを作れるようにがんばろうと思います。 お目汚し失敬しました。
532 :
デフォルトの名無しさん :2008/08/09(土) 00:23:02
HSP3.xから使えるいい感じに高機能なエディタコンポーネントってある? 俺にIDE作らせたらすごいぜ?
533 :
532 :2008/08/09(土) 13:24:57
Scintillaってやつ使ってみてるけど、日本語入力に半分しか対応してないうえに 正規表現で色分けしたりできねーのかよ。 ったく、使えねーな。
footy2は? フリーだよ。
>>535 少し昨日が中途半端なので自分はあまりお勧めしないが基本的な機能は出来ていると思う
コンボボックス1の選択内容に応じて、 コンボボックス2の内容をリアルタイムに変更したいんだが、 何かうまい方法ないかな?
すいません、自己解決しました。 ループでコンボボックス1の状態を監視すればいけますね。
このスレ的にはoncmd使えと言いたいところだが…
>>539 ありがとうございます。
そっちの方が良さそうですね。
しかしインデックス番号を得る方法が分からない。
sendmsgじゃあダメなのかな…。
そのsendmsgでCB_GETCURSEL送ればインデックスは得られるけど 普通にcomboxの変数見ればいいじゃない。
ていうか送られてくるメッセージに書いてあるでしょ。
おにたまの書くコードが汚すぎてOpenHSPが盛り上がらない件 意味不明なソースを前に四苦八苦する開発者たちが可哀想だわ・・・
普通の処理系っぽい複数フェーズ構成で全部書き直したくなるってのはある ML見る限りおにたまさんも今のままでいいとは思ってないようだけどな それにしても某氏はMLで愚痴りすぎ
OpenHSPの現況を知りたいんだが、hspdev-mlのサイトにつながらなくて涙目の俺が通りますよ・・・
MLではOpenHSPに関しては特に動きなし Tracのほうがわかりやすいかも
あの閑散としたタイムラインが全てなのか
>>543 の言う通り盛り上がってないのね(´・ω・`)
みんないそがしいんだなん そういう漏れも忙しいんだなん
あたぼうよ。
このスレにはHSPランタイムを1から書き直す猛者は居らんのか?! さっさとGUIファンクションを抽象化してクロスプラットフォーム化しろよ!
クロスコンパイル言語のテンプレートをHSPに似せて作った方がいいんでないの?
もともとWindows APIやx86を抽象化しようって方向性が無いから GUI関連の命令を移植しようとするくらいならlibwine使うほうが楽。 かといってクロスプラットフォーム化するために命令体系を大きく見直して 文法はHSPのを使うってほどには文法部分の魅力は無い。
HSPはWindowsAPIの薄いラッパだからこそ、使う意味がある。 移植するなとは言わんが、XWindow上に全部オーナードローで 描画しちまったほうが断然 楽な気がしてならない。
HSPみたいに簡単にウィンドウ作ったりできるラッパってないのかな。 コア部分はCでDLL書いてHSPで呼び出して使ってるけど、いい加減GUIもCで書きたくなってきた。
WTLとかOWLとかtkとか。 WTL/OWLはWindowsAPI知らないと辛いし、tkはWindowsとの親和性微妙だが。 条件満たさないけど.netもいいかも。 HSPみたいにっていうのが良ければOpenHSPからWindow操作周りだけ 抜き出して公開すれば喜ぶ人いるんじゃないかな。 以前hsp-dev MLでそういう話でてたけど、話だけで終わったし。
HSPで32ビットのunsigned使う方法ってないですかね? もしくは64ビット整数値
自己解決しました
>>555 どうせWinAPIはHSPからもバンバン叩いてるから問題ないんだけどね。
screen,font,mesあたりだけでもCで1行で書けると楽なんだがな。
APIの勉強しながら自分でラッパ書くってのもありだな。時間がほしい。
あとメモリノートパッド命令とかの文字列操作。あれは地味に便利だ。
>>558 ,559
個人的にはstlとboostの文字列操作のほうが便利だと思うが
メモリノートパッドは他に依存してないからhsp3/strnote.cppをそのまま使える。
screen,font,mesは柔軟性とのトレードオフでWTLだと少し複雑だな。
hsp3/win32gui/hspwnd_win.cppから切り出すのもメモリノートパッドに
比べれば面倒だが十分可能。
>>560 標準関数とWin32APIしか使ったことないんでその辺はノーマークです
本買ったほうが良いかな
STL覚えるだけでもかなり生産性違うから1冊持っといても損はない 慣れていろいろやりたくなったらBoostも追加すればいい
564 :
デフォルトの名無しさん :2008/10/02(木) 11:11:42
β2まだかな?かな? Win32APIを使いこなせる人マジで尊敬するっす。
>>564 .NETが普及して来るとAPI使える人減るんだぜ
それとAPIなんてネットで検索すれば何でも出来るぜ
ただし最低限の構造体に関する知識(LONGが何バイトとか:ポインターとか)必要だが。
ショートカットキー(Ctrl+Sとか)をonkey+getkeyで実装してるんだけど、inputとかbuttonにフォーカスがあると物によっては反応してくれない。 全部のオブジェクトをサブクラス化するのもなんかアレだし… キーボードアクセラレーションってこういう場合でも使い物になる?
repeat~loop内でInternetReadFileを使ってファイルをダウンロードしてるんですが ダウンロードが完了するまでウィンドウの反応がなくなります。 repeat内でawait 0は入れてるんですが改善されません。 どうすればいいですか?
hspinet.dllを使う場合はそんなことないけどね。await 1 にしてみるとか。 違うねたぶん。 わかりません>< ソースうぷ!
バッファの扱いまちがってるとか? ループの中身plz
Readsize = 1000 : pReadsize = varptr(Readsize) bufsize = 1048576 ;1MB sdim buf,bufsize : pbuf = varptr(buf) hURL = varptr(URL1) InternetOpenUrl hInternet,hURL,0,0,Internet_FLAG_RELOAD,0 hFile = stat if hFile == 0 : dialog "OpenURL failed." : end ElapsedReadSize = 0 repeat InternetReadFile hFile,pbuf,bufsize,pReadsize Result = stat if Result == 0 { if readsize == 0 { ;ファイル終端まで読み込んだ break } else { ;読み込み失敗 dialog "ReadFile failed." end } } else { if readsize == 0 { break } else { ElapsedReadSize += ReadSize } } await 0 loop こんな感じです。色々と無駄な処理と分岐が入ってますが気にしないでください。 落とすデータのサイズは400kBです。
バッファが大きすぎて全部終わるまで InternetReadFileがブロックしてるだけに見える bufsize = 1024ぐらいで試してみるとか
>>572 直りました!
感謝♪
bufsizeについて思い違いしていたみたいです。
ありがとうございました♪
>>573 分かってると思うけど格納する配列を別に用意するかpbufをずらしていくかは必要
http://hsp.tv/make/enroll6.html の
exec "notepad HSP2.TXT" のところ
> 注意しなければいけないのは、HSP2.TXTのように開きたいファイル名を指定す
> る時には、そのファイルがHSP.EXEと同じディレクトリにあるか、またはPATHで
> 指定されているディレクトリになければならないということ。PATHで指定され
> ているディレクトリとは、普通Windowsのシステムが入っているディレクトリな
> ので、Windows標準のシステムツールであるNOTEPAD.EXE、つまりメモ帳はちゃ
> んと呼び出せる…というわけ。
プログラムと引数がごっちゃになってない?
なってるね。報告してあげれば、gjと感謝されるかもよ。
BTSとかITSとか見当たらんのだが、どこへ報告すりゃいいんだ?
gj
そこは本体に関するレポート以外でもいいのかな? まぁ対象サイト自身に報告してもまずくはないだろ。
583 :
デフォルトの名無しさん :2009/07/16(木) 19:56:00
ちょっと質問いいすか ディアボロの大冒険という配布中止になったソフトを再配布してやると偽って最近アプロダに上げられてるジェニファーウィルスというのがあるんですが どうやらHSP製なので逆コンパイラでstart.axまでは抜き出したんですがここからスクリプトの中身を見る方法は無いでしょうか? 踏んでしまったもんで何をやったのか確認しないと不安で
>>583 シェアウェアで逆コンパイルできるのがあった気がするが、試してみたことはないのでわからない。
バージョンで動くかわからんし。
あとはHSPのソース見て自分で解析。
素人レベルでも無料で簡単に逆コンパイルできるのって今のところないんじゃまいかね。
586 :
583 :2009/07/18(土) 17:27:28
587 :
デフォルトの名無しさん :2009/07/29(水) 20:05:21
3.2RC1 age でもhsp32rc1.txtドコー('A`)
tes
589 :
デフォルトの名無しさん :2009/09/01(火) 11:28:15
HSP製のウィルスなんてあるのかw
すまん>585が答えていた
592 :
デフォルトの名無しさん :2009/09/17(木) 03:10:40
初質スレで同じ質問をしましたがレスがなかったのでこちらで質問があります。 MP3などのタグなどの情報などを抜き取るにはどうすればいいんでしょうか。 よろしくお願いします。
ファイルのケツに記録されてるからバイナリで抜く。 目印は"TAG"
>>594 すみませんバイナリはgetregで読み込みするんでしょうか。
バイナリの事をあまり知らなくて...
ググッてもいまいちわからず...
もう少し調べてみようと思います。
>>595 です。
調べてみた結果なんとかバイナリを使えそうです。まだ不安なところはありますが...
>>594 さんのおかげでTAGの続きのアーティスト情報などを見つける事ができました。本当にありがとうございました。
597 :
デフォルトの名無しさん :2009/10/01(木) 07:18:43
どういたしまして
HSPはさぁ・・・ローカルプログラミング言語のクセして、 いちユーザーが作成したE3DやHSPLetのような大きいファイルが 標準で同梱されてるからバージョンアップの度に落としたくないって思う。 昔のHSPはほんと軽かったよ。 あ、処理のことじゃなくて開発環境セットのことね。 あーいうプラグインって本当はユーザーが好きに選んで落とすものでしょ??? E3Dを標準にするならもうhspdx関連自社実装しなくていいし、やめちゃっていいよ。
HSPコアシステムだけの軽量パック作ってくれぐらい言えばいいのに やめろとは器の小さい奴だな
hsp2が現役なんだが 3にしなければいけない事ってあるか? Message関連は欲しいと思う事は時々あるが
601 :
デフォルトの名無しさん :2009/10/13(火) 22:57:05
晒しage
つ DarkBASIC
>>600 一番の問題点は一部のセキュリティソフトにウィルス判定されてたって事だったが
それ以外で3でなければならない理由は特に無いと思う、3でも誤検知されるしな
しいてあげるならVista以降は非サポートぐらいか?
つ DarkBASIC
bukkake hsp
Shine HSP
608 :
デフォルトの名無しさん :2009/11/23(月) 15:44:05
カラーダイヤログをOSのdllから呼び出したいのですがどのdllを使えばいいですか?
こんなスレあげんな
610 :
608 :2009/11/24(火) 10:55:52
すいません質問スレに行きます
611 :
デフォルトの名無しさん :2009/12/15(火) 04:07:45
上級者はいないのか?
私が上級者です(霧)
私も上級者です
じゃ俺も上級者 ノシ
俺も、俺も~!上・級・者!! ていうか、すっかり過疎スレと思ってたのに、おまいら見てたのなww
616 :
デフォルトの名無しさん :2009/12/22(火) 11:18:23
突如現れる上級者達って・・・
同じモジュール内の複数のユーザ定義命令で同じ名前のローカル変数使っても きちんと別物として扱われるんだね。 まあそうしてもらわないと困るんだけど、今までなんとなく不安持ったまま使ってて、 簡単なテストスクリプト書いてみたら大丈夫だった。 ただ同一モジュール内で、ひとつの名前をローカル変数と通常の変数の両方で使えない のはちょっと不便。両方ともローカル変数にしてしまうなどしないといけない。
a=1 #module mes a@hsp #global
619 :
デフォルトの名無しさん :2010/09/17(金) 23:17:37
上級者不在?
もうね 上級者は アク禁 逮捕かと
621 :
デフォルトの名無しさん :2010/11/18(木) 12:17:33
本当の上級者はC++でHSPの本体を書く仕事に忙しいようです。
HSPコンパイラを作ればいいだけジャマイカ
624 :
デフォルトの名無しさん :2010/12/30(木) 21:01:17
無料RPG製作ツール「ロープレジェネレーター」
http://sekisekki.net/index.htm 直感的操作で簡単なゲームが作れます。 簡単に配布可能な状態に出力することができます。
(HSP製のソースコード付きで、スクリプトの知識があれば自由度の非常に高いカスタマイズ
ができます)
他にも仲間預かり機能(100人も)や、仲間の状態/状態異常を細かく設定できたり、
乗り物が作れたり、ゲーム中に画像を差し込んだり、回転やフラッシュなどのエフェクト
なんかも簡単に作れる様です。
移動は矢印キーの他に、キャラがマウスを追っかけたりするとのこと。
戦闘はデフォだとドラクエ系。
他にはオートアクションというのがあってオリジナルシステムの製作に役に立つかも
しれない機能です。これは、マップエディタで設定することで、「マップに入った時・
出た時・一歩歩いた時・戦闘開始前」に自動的に実行されるアクションを設定できる
機能です。
■他にもいろいろ進化中。要望は掲示板へどうぞ。
どんなゲームが作れるかはこれを見れくれ。HSPのカスタマイズはしてないとの事。
「眠られぬ獅子~序章~」
http://www.freem.ne.jp/game/win/g02773.html
1ヶ月ぶりに書き込みがあったと思ったら…
626 :
デフォルトの名無しさん :2011/02/21(月) 19:04:05.67
初歩的な質問で申し訳ないんですが、 HSPで音を鳴らすにはどうすればいいですか?
誰もいない…
そいや今更気が付いたけど、HSPにはBASIC時代 どの機種にもあったMMLは搭載されてないんだなあ。
初質スレが落ちてたのでこちらですみません 目的:任意のwavファイルを結合して出力するソフトを作る 出来れば嬉しい:wavファイルのピッチや速度を変更して出力する 目的はこうなのですが、waveを簡単に編集できるdllなどは無いでしょうか ググった限りは見つかりませんでした
>>631 wavって結構いじりやすくない?
普通に仕様片手に読み込むコード書いても大した手間ではないかと。
ピッチは知らないけど速度変更なら間のデータを補完することをしなくちゃいけないから面倒かもね。
wav仕様はざっと眺めましたが理解不能でした 恐らくは情報(長さやらレート、周波数他)を見て頭尻切って張っ付けるだけだとは思うのですが…… 日本語で詳しく解説してあるものがあれば良いのですが、うーん dllが無ければコマンドラインで動かせるフリーソフト探して連携させるしかないかな……
634 :
632 :2011/02/25(金) 17:43:07.23
日本語で……いやhspソースでおk
636 :
632 :2011/02/26(土) 12:05:25.52
プログラムは手段であって目的ではない 特にHSPは
>>637 マアネー
ここんとかちっちゃな便利ツール作るばかりだわ
・ファイルを検証する ・ファイルAとファイルBの長さ情報を合計してファイルBに書き込む ・ファイルBのヘッダを取り除く ・そのまま足す
違った、書きこむのはBじゃなくてAだ ついでにヘッダだけじゃなくてフッタもあれば切り取って、 切り取った分の長さも長さ情報から引く必要がある
みんな有り難う 機能かなり削ぎ落とせばできそうな気がしてきました ちょいやってみます
>>631 「C言語ではじめる音のプログラミング」
っていう本買うといいよ。
>>642 買ってみたら、解説部分は何書いてるかわからず、
サンプルソース部分はC読めないので意味わからなすぎワロタ
とはいえ、それでもこの本が目的に一番近そうなのでもう少し頑張ってみる