ab.com コミュニティ

ActiveBasicを通したコミュニケーション
現在時刻 - 2024年4月27日(土) 14:52

全ての表示時間は UTC+09:00 です




新しいトピックを投稿する  トピックへ返信する  [ 4 件の記事 ] 
作成者 メッセージ
 記事の件名: C用語は
投稿記事Posted: 2005年7月02日(土) 08:31 
ActiveBasicでC用語のプログラムって作れるんでしょうか。
もし良ければ教えてください。


通報する
ページトップ
   
 記事の件名: Re: C用語は
投稿記事Posted: 2005年7月02日(土) 10:19 
オフライン

登録日時: 2005年5月31日(火) 09:34
記事: 141
お住まい: 北海道
> ActiveBasicでC用語のプログラムって作れるんでしょうか。

C「言語」ですよね・・・。

Qooさんが言いたいのは「C言語のプログラムをActiveBasicに移植したい」ということでしょうか?それでしたら可能かもしれません。
具体的にどういうことがしたいのでしょう?

_________________
' ============================================================
' Sinryow Game Home Page - http://www.sinryow.net/
' Sinryow ActiveBasic Center - http://ab.sinryow.net/
' ============================================================


通報する
ページトップ
 記事の件名: Re: C用語は
投稿記事Posted: 2005年7月02日(土) 23:25 
オフライン

登録日時: 2005年5月31日(火) 01:10
記事: 26
お住まい: 岡山県
> > ActiveBasicでC用語のプログラムって作れるんでしょうか。
>
> C「言語」ですよね・・・。
>
> Qooさんが言いたいのは「C言語のプログラムをActiveBasicに移植したい」ということでしょうか?それでしたら可能かもしれません。

Qooさん、僕はC言語のプログラムを移植したプログラムをこちらで掲載しています。<(AB仕様のものは、ある程度できたらC言語に移植する予定です)
┗(WAV再生用)

C言語仕様はここです<(こちらは、ほったらかしですが^^;)
┗(Ogg再生用)


通報する
ページトップ
 記事の件名: Re: C用語は
投稿記事Posted: 2005年7月06日(水) 00:16 
オフライン

登録日時: 2005年7月03日(日) 10:37
記事: 27
お住まい: 愛知県岡崎市
レスの内容が私が受け取った意味と違っていたので、
念のため書いておきます。

> ActiveBasicでC用語のプログラムって作れるんでしょうか。
恐らく、C言語の関数をActiveBasicで再現できるか?という意味かと。
それを"C用語"と言われているのではないでしょうか?

この前提で答えていきます。


●#ifdef, #ifndef, #endif, #else, #define
 この辺りの動作はプリプロセッサの処理になりますので、
厳密な再現は出来ないと思われます。
ただし、#defineに関してはconst命令で近いところをサポートできます。

●main関数 (最初に実行される関数)
 Createイベントの末尾でCreateThread関数(API)を使って新たなスレッドを立て、
その関数名を"main"にしてしまえば近い事はできます。
が、どうしてもその前にグローバル領域とCreateイベント内の処理が行われてしまうので、
厳密に再現する事はできません。

●ラベル
 ラベルの前に*を付ける事で可能です。
GOTO文も健在ですので、問題なく再現できます。

●printf関数
 コレ自体を再現するには関数を一つ作らねばなりません。
wsprintf関数(API)を参考にすれば可能だと思われます。

●switch ~ case
 Select Case文が近い事をやっていますが、完全な再現は無理です。
ちなみにcaseの後にコロンを付けてもコンパイルは通ります。
※ActiveBasic的には誤りみたいですが、私は敢えて付けています
※でないとCを書く時に間違えそうですし..

●for
 C特有の3段指定は無理です。

●関数ポインタ
 AddressOf文で対応できます。

●ポインタ
 DWordPtrなど、型に対してPtrを付けて対応可能です。
巷では*が有効とか聞いたのですが、ホントかどうかは未検証です。

●void型
 VoidPtr型で対応できます。
引数の場合はAnyでも対応できるみたいです。

●ポインタのポインタ
 BASICなんで不要な気もしますが可能です。
BytePtr型などのポインタ型変数を宣言しておいて、
関数の引数にByRefを指定すれば同等の効果が得られます。(たぶん)

●おまけ:printf("%a");
 Beep関数(API)で対応可能です。
ただし、この関数はOSバージョンによって使い分けされるので、
ヘルプかMSDNをよく読んでお使いください。

_________________
# まけイヌ (losedog2)
# Home : http://www50.tok2.com/home/losedog2/
# Mail : losedog2@yahoo.co.jp


通報する
ページトップ
期間内表示:  ソート  
新しいトピックを投稿する  トピックへ返信する  [ 4 件の記事 ] 

全ての表示時間は UTC+09:00 です


オンラインデータ

このフォーラムを閲覧中のユーザー: Bing [Bot] & ゲスト[14人]


トピック投稿:  可
返信投稿:  可
記事編集: 不可
記事削除: 不可
ファイル添付: 不可

検索:
ページ移動:  
Powered by phpBB® Forum Software © phpBB Limited
Japanese translation principally by ocean