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


HSPTV!掲示板


未解決 解決 停止 削除要請

2006
1123
AKIhspinetとpcbnetの相性?8解決


AKI

リンク

2006/11/23(Thu) 15:34:34|NO.3712

こんにちは
ソフトのバージョンアップした時の先にDLしているソフトとの比較をしようと思ってますが
hspinet.asとpcbnet2.asを使うようにするのですが

#include "hspinet.as" sdim a,20,13 sdim b,20,13 netinit neturl "http://*********.com/" netload "net.txt" bload "net.txt",a ;最新バージョンNO bload "bb.txt",b              ;現在バージョンNO if int(a)>int(b):dialog "更新しました",0 if int(a)=int(b):dialog "ok",0 #include "pcbnet2.as"
というスクリですが
実行すると
#HSP script preprocessor ver3.1b6 / onion software 1997-2006(c)
#Error:symbol in use in line 12 [pcbnet2.as]
#Fatal error reported.
#Error:symbol in use in line 11 [hsptmp]
#Fatal error reported.
とエラー表示します
どういう意味ですか?



この記事に返信する


As

リンク

2006/11/23(Thu) 16:01:55|NO.3714


>>PCBNET #uselib "pcbnet2.hpi" #func netinit netinit 0x000 #func neterror neterror 0x001

↑hspinet と同名の関数が2つ定義されているようです。関数名を変更すれば使えるみたいですよ^^



AKI

リンク

2006/11/24(Fri) 08:36:21|NO.3721

こんにちはASさん

pcbnet2.asの同名の関数名を変更しましたが同じでした
なぜでしょう?



kz3

リンク

2006/11/24(Fri) 08:49:59|NO.3722

>pcbnet2.asの同名の関数名を変更しましたが同じでした。なぜでしょう?

変更内容を教えてもらえないと、AKIさんがどのように変更したのか分かりませんです。



AKI

リンク

2006/11/24(Fri) 12:15:37|NO.3723

こんにちはKZ3さん
#func neterrorr  neterrorr 0x001
#func netinitt  netinitt 0x000
としてPCBNET2.asの最後にnetinitがあったのでnetinittに変更しました



kz3

リンク

2006/11/24(Fri) 15:55:38|NO.3724

>#func neterrorr  neterrorr 0x001
>#func netinitt  netinitt 0x000
>としてPCBNET2.asの最後にnetinitがあったのでnetinittに変更しました

#funcの二番目のパラメータはDLL内のエクスポート関数名なのでいじってはいけません。
識別子だけ変更すれば大丈夫なはずです。

ただ、配布されているものを変更するのはあまり気がすすまないので、モジュールで内包するという方法もあります。
ただし先に言ってしまうとhspinet側では既に定義ファイル中にモジュールが存在しているので、モジュールのネストが出来ないため、pcbnet側を次のように内包します。
さらに先に裸のままの#funcが定義されてしまうとグローバル定義されてしまうようなのでモジュールの方を先に書きます。

#cmpopt optcode 0 ; hsp31b2以降で必要 #module pcb #include "pcbnet2.as" #global #include "hspinet.as" netinit ; hsp側のnetinit netinit@pcb ; pcb側のnetinit
これでpcbnet2.asを直接編集しなくても済むはずです。

#プリプロセッサのグローバル扱いってコロコロ変わっていますか?



AKI

リンク

2006/11/24(Fri) 20:00:20|NO.3730

こんにちはKZ3さん
PCBnet命令はすべて@pcbつけるのですか?
#プリプロセッサはとりあえず以下だけです
#include "hspda.as"
#include "hspext.as"
#define ADDR "************.com" ;接続先アドレス
#define PORT 21 ;port番号
#define men 16 ;登録数
#define tipx 32
#define tipy 32



kz3

リンク

2006/11/25(Sat) 11:05:30|NO.3745

>PCBnet命令はすべて@pcbつけるのですか?

そういうことになります。

>>#プリプロセッサのグローバル扱いってコロコロ変わっていますか?

これは私の独り言なので気にしなくていいです^^;



AKI

リンク

2006/11/25(Sat) 13:04:26|NO.3747

なぜか変更するとソケットエラーがでてしまいます
なのでpcbnetで作ってるサーバからnet.txtを読み込んで変数にして
送るようにしました

sdim a,20,13 ;最新バージョン変数 sdim b,20,13 ;現在バージョン変数 b=int(2) ;現在バージョンNO csvstr getdata1,data1 data=int(getdata1.0) ;mydeta a=int(getdata1.1) ;最新バージョンNO if int(a)>int(b):dialog "更新されています\n新しいバージョンダウンロードしてください",0
ありがとうございました



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