abwiki @ ウィキ (ActiveBasic非公式wiki)内検索 / 「cmd.exe」で検索した結果

検索 :
  • file:/c:/windows/system32/cmd.exe
    ...対話環境を持つ。 cmd.exeは対話的コマンドを処理する機能。 キーボードを使ったコマンド対話環境は有用なため現在でも使われ続けている。 一般にはCUI,コマンドインターフェース、NT系の現在のWindowsではコマンドプロンプト、 Windows95/98/me系ではMSDOSプロンプト等と呼ばれる。 MSDOSの時代にはcommand.comと呼ぶ対話環境が存在し、現在のWindowsでも全く同様の コマンド、バッチファイル体系を持つ。 NT/2000/XP以降のNT系OSではCUIコマンド対話環境はcmd.exeが担当する。 Windows95/98/meではcommand.comが担当する。 Win95/98/meがcommand.comを使っている理由はOS設計がMSDOS機能と深い関係があり 完全にリライトされたNT系OSとは違うため。 ...
  • AB5プロジェクトファイルをAB4で開く
    AB5のプロジェクトファイル(*pj)はAB4で開くと プロジェクト ファイルが壊れています と怒られてしまう。 こんな時はプロジェクトファイルの修正が必要。 プロジェクトファイルをメモ帳で開く。 ' ActiveBasic Project file.#VERSION=10#MODULETYPE=0#NAME=clock#PLATFORM=32#USEWINDOW=1#OPTION= H00010000#OUTPUT_RELEASE=.\clock.exe#OUTPUT_DEBUG=.\clock_debug.exe#DEBUG_CMD_LINE=#DEBUG_EXE_PATH=#RESOURCE=0#SOURCEclock.abpMainWnd.sbp この中にある、 #DEBUG_CMD_LINE= #DEBUG_EXE_PATH= この2つを削除すれ...
  • Exec
    名称 |Exec 読み |えぐぜっく 定義 |Exec filename$, [comm$] 説明 |ファイルを起動。comm$はコマンドライン引数。 参照 |
  • ステップ0 「インストールとHello world!」
    公式の説明でok まず、ActiveBasicとはなんだ?といえば、Windows用のBasic言語だと理解しておいておくんなはれちゅーワケや。「Ver3.0からはコンパイラがこのように進歩して…」とゆうややこしいことは、技術解説のページを見まひょ。とくかく、このページの通りに操作すれば、(間違いが無ければ)じぇったい目的のプログラムを動かせるようになっていまんねん。 まずは、ダウンロード、インストールの説明から。 ActiveBasicダウンロードページの下のほうに、「ab***.exe」(*には数字が入ってまっせ〜)とゆうファイルへのリンクがあるので、それをクリックして適当なフォルダにダウンロードしておくんなはれちゅーワケや。Vectorからもダウンロード出来まんねん。 そのあとアーカイブを解凍し、解凍先のフォルダを選択し、OKボタンを押しまんねん。 ...
  • ABの初期設定
    ABの初期設定 ABの開発元 activebasic.com からAB4.24のZIPでダウンロードします。 画面左のメニューの下に「AB4をダウンロード」というのがあるのでそこからいけるはずです。 展開したらそれで終わり。ごちゃごちゃ入っていますがプロジェクトエディタ(ProjectEditor.exe)を使うのが一般的だと思われ魔手。 初めてプロジェクトエディタちゃんを起動すると関連付けを設定するように促されます。通常はそのままの設定でいいでしょう。 Includeフォルダ 関数とかの宣言 Runtimeフォルダ ABDX(ActiveBasic with DirectX library)のランタイム Samplesフォルダ サンプルアプリ SubOperationフォルダ テンプレートとか UserSettingフォルダ ProjectEditorの設...
  • DLLの基礎
    DLLは、Windowsの根幹である。 DLLは、Windowsをより使いやすくするための手段です。 exe(実行)ファイルは機械語でプログラムが書かれています。 これは単体で動作するものですが、 例えば a.exeとb.exeの中で全く同じ動作をするプログラムがあった場合、 2つも同じものがあるのは容量、読み込み時間の無駄になります。 2つとかならいいのですが100個のアプリケーションが同じコードを持っていたら大変なムダです。 そこでDLLの登場です。 DLLはプログラムの部品を入れることができ、それは複数のアプリで共有されます。 なお,DLLをつくる時は、main関数ではなくDllMain 関数がエントリポイントとなります。 これは梨花で変更可能ですがデフォルトに従った方が良いでしょう。 とうぜんですがDllMain関数内で例外を起...
  • デレクトリの再帰検索を行う
    /*デレクトリの再帰検索を行うdir → 検索ディレクトリfukasa → 最大深さ。0ならサブディレクトリを検索しないcallback_func → 検索結果のファイル、フォルダの名前を返す関数のアドレス返り血 なし*/Sub hxtree(dir As *Byte, fukasa As DWord, callback_func As *Sub(p As *Byte))Dim wfd As WIN32_FIND_DATADim hF As HANDLEDim noah[428] As Bytewsprintf(noah, "%s\*.*", dir)hF = FindFirstFile(noah, wfd)DoIf lstrcmp(".", wfd.cFileName) = 0 or lstrcmp("..", wfd.cFil...
  • ダイアログボックスをリソースから読み出してみよう
    次のプログラムはBasicCompiler.exeに含まれるActiveBasic Compiler Debuggerをメインウインドウにしてみる例。 このようにリーソースすることで、AB側のコードを大幅に減らすことができる。 Declare Function DialogBox Lib "user32" Alias "DialogBoxParamA" ( _ hInstance As HINSTANCE ,_ lpTemplateName As *Byte ,_ hWndParent As HWND ,_ lpDialogFunc As *DWord ,_ dwInitParam As *DWord ,_ ) As *Long Declare Function EndDialog Lib "User32&qu...
  • コマンドライン引数
    コマンドラインを取得するにはGetCommandLine()を使う。 コマンドラインのポインタを得るだけなので、内容を変更するときはバッファにコピーしとくべきだと思う。 コマンドは分割されておらず、"argv[0] argv[1] ..."な感じ。自力で分割する。 #N88BASIC'コマンドの和夫返すFunction GetArgc(cmd As *Byte) As LongDim state1 As Long'コマンド内かどうかDim state2 As Long'クオート内かどうかDim count As Long'コマンドの数Dim n As Longstate1 = FALSEstate2 = FALSEcount = 0n=0While cmd[n] 0If state1=FALSE And cmd[n]...
  • 最適化
    MessageBox(3,3,3,3) これをコパイルしてexeを出す。このexeをdumpbin.exeで逆アセンブルする。 すると… 00401000 55 push ebp 00401001 E8 04 0E 00 00 call 00401E0A 00401006 6A 00 push 0 00401008 E8 AC 14 00 00 call 004024B9 0040100D A3 4C 56 40 00 mov dword ptr ds [0040564Ch],eax 00401012 6A 00 push 0 00401014 E8 A0 14...
  • ファイル圧縮してみよう
    Common Archivers Library からCAB32.DLL 開発者 SDK v0.98をダウソしましゅ。 展開して、cab32.dllを、システムホルダに投入します。 ABのプロジェクトでウインドウにリストボックス(ID=ListBox1)とボタン(ID=CommandButton1) だけの画面を作ります。このとき、MainWndの拡張スタイルでドラッグ&ドロップを許可にします。 イカのコードをコピペします。終わり。 ----------------------------------------------------------------------------- イベント プロシージャ --------------------------------------------------------------------...
  • ステップ4 「RADツールに初挑戦」
    (Verによって画面がやや異なる。) 今まではMessageBox関数のみを使用した素朴な画面出力やったが、ここで本格的なGUIプログラムの開発に挑戦してみまひょ。「いろんな種類のウィンドウを、関数やらをいくつも使って生成するやつでしょ?」なんてゆう方、お絵かき感覚のウィンドウ デザインを是非、お試しおくんなはれちゅーワケや。 プロジェクトを生成してみまひょ RADツールを利用するためには、ノーマルウィンドウをベースにしたプロジェクトを作成する必要がおます。作り方は至って簡単、新規作成でプロジェクトを選択し、後は画面の指示に従って設定を施すだけや。 さっそく、プロジェクトの作成をしてみまひょ。 初めに、新規作成でプロジェクトを選択し、OKボタンをクリックしまんねん。 次に、プロジェクト名、保存先のディレクトリを設定しまんねん。プロジェクト名は...
  • ステップ1 「変数の扱いと演算子」
    公式の説明でok 「変数」とは、データを記憶するためのメモリの一部分やと考えておくんなはれ。変数にはいくつかの種類があり、整数を記憶できるもん、小数部分の数値も記憶できるもん、文字列を記憶できるもんやらなんやらが存在しまっせ。 変数を利用する前にはじぇったい、「変数の定義」をせなあかんなりまへん。例えば、 Dim a As Long この一行は、「"a" ちう名前のLong型変数を利用します」ちう意味を持ち、この次の行から変数aを利用するっちうことができるようになるんですわ。Long型とは、整数を扱うための変数型のことや。こないな風に、変数の定義を行う場合は、Dim命令語を利用するもんやいうことを覚えておきまひょ。 早速、Dim命令語で変数宣言を行い、値を代入してみまひょ。 Dim a As Long a=20 Messag...
  • ステップ16 「RPGのマップ移動機能を作る①」
    今回はスプライト処理をはじめとするテクニックを利用し、マップ、および主人公の描画をRPGライクに行います。 なお、今回からの解説は、First Seed Materialで公開されているRPG用素材を利用させていただきます。 今回作成するプログラムのサンプルファイルを置いておきますので、参考にしたい方はどうぞ☆ Fantasy.zip(プロジェクトに必要なファイルがすべて入っています) このステップの要点は、スプライト処理です。ビットマップのマスク処理などといったほうが、親しみがあるかもしれません。具体的には、ビットマップに対して以下のような演算をさせ、画面に出力します。 = AND OR これを動かすとなると少し大変なので、まずは右上にあるような画面を作ってみることにしましょう。 ノーマル ウィンドウ ベースの新規プロジェクトを作成し...
  • ステップ17 「RPGのマップ移動機能を作る②」
    前回やった、草原マップ、主人公キャラの描画に引き続き、今回はキー操作に反応し、キャラが自由に歩き回れるようにするプログラムを作成していきます。 今回作成するプログラムのサンプルファイルを置いておきますので、参考にしたい方はどうぞ☆ Fantasy2.zip(プロジェクトに必要なファイルがすべて入っています) 今回も、First Seed Materialで公開されているRPG用素材を利用させていただきます。 前回作成したプログラムがある方は、MainWnd.sub のプログラムを変更するだけで実現できます。このページのプログラムリストは、前回からの変更点を太字で示してあるので、それを参考に改良してみて下さい。 新規にプログラムを作成する方は、まずはプロジェクトを作成しておきましょう。新規作成→プロジェクトで、"Fantasy" などという名前のプロ...
  • ステップ18 「RPGのマップ移動機能を作る③」
    前回の解説で主人公キャラが自由に動け回れるようになったので、今回は任意のマップを描けるようにしてみます。 マップ図にマップチップを割り当てるという、非常にシンプルな細工をするわけですが、マップチップの種類が非常に多いため、数字攻めになってしまうかもしれませんが、根気良くがんばりましょう。 今回作成するプログラムのサンプルファイルを置いておきますので、参考にしたい方はどうぞ☆ Fantasy3.zip(プロジェクトに必要なファイルがすべて入っています) 今回も、ステップ17「RPGのマップ移動機能を作る②」で掲載したプログラムの変更点を太字で表しているので、参考にして下さい。 また、以下のようなマップの配置図(25*20)をCSV形式で用意しておく必要があります。プロジェクトが保存されているディレクトリに "map.csv" というファイル...
  • 壁紙チェンジャー
    壁紙の変更はSystemParametersInfo関数を使う。 この関数はビットマップのみなのでjpegとかは一旦bmpファイルにしないといけない。 そこでimgctl.dllをダウンする。http //www.ruche-home.net/ これでpeg,png,gifをbmpにできる。 http //www31.atwiki.jp/abwiki?cmd=upload&act=open&pageid=221&file=WallpaparChanger.zip
  • 初めてのプログラム
    プロジェクトエディタを起動して 新規作成→Basicプログラムと進む。 エディタ画面に次のコードを貼りつけてリリースコンパイルのボタンを押す。 Dim myname[1208] As Byte wsprintf(myname, "平井公彦") MessageBox(0,myname, "名前", MB_OK) 名前を付けて保存するが出てくるので、適当なところに好きな名前で保存。 するとその名前のexeができる。 このexeをダブクリすると こんなのが出てくる。おめでとう! プログラムの経験が無い人は何がどうなっているのかわからないだろうが、今すぐに理解出きなくても良い。 これをいろいろいじってみることでどんな結果になるか試してみよう。 そして新しい単語が出てきたら、ヘルプに眼を通すことと、いろいろやってみること...
  • プロンプトウインドウでフルカラーを使う
    APIを用いプロンプトウインドウ(#N88BASIC,#prompt)画面で、32bitフルカラーを使う。 #promptDim x As IntegerDim y As IntegerDim c As LongDim hdc As HDChdc=GetDC(_PromptSys_hWnd)for y=0 to 480for x=0 to 640c=RGB(x,y,y/2)SetPixel(hdc,x,y,c)next xnext y N88BASIC,プロンプトウインドウでは、abの内部処理で二つの画面バッファーが使われ,二つの画面 プレーンに対して描画される。 ウインドウの内容が消えないようにするには、前面のみ描画ではなく、 前面と後面の描画プレーンに対して二回描画する。 #promptDim x As IntegerDim y As IntegerDim c A...
  • RunBASICの使い方
    RunBASICはサーバーサイドのBASIC。基本はcgiと同じ。perlやphpをwebサーバに置いて、 ブラウザ側から動的にwebページを表示可能。 従来のBASIC言語としても利用できるし、Webアプリケーション作成も可能。携帯などからも 利用出来る。 cgiと異なる点は、BASICインタプリタとWebサーバがオールインワンで含まれ、動作させる BASICコードをブラウザ上で編集できる事。通常はperlやphpのソースコードをftpでサーバへ 転送するが、その必要が無い。 その場でwebアプリケーションとして動作させ、編集画面から直接実行することができる。 さらに、記述はBASICとhtmlを使用し、html記述言語として利用可。BASICコードを使って htmlのマクロ的記述が可能。どちらかというとphpに近い。 RailsとかFrameworkより驚くほ...
  • メーラーを起動する
    Dim mailmes[44444] As ByteDim add[444] As ByteDim taitle[444] As ByteDim body[4444] As Bytelstrcpy(add, "aaa@bbb.ccc")lstrcpy(taitle, "[重要]至急連絡ください")lstrcpy(body, "5万円")wsprintf(mailmes, "mailto %s?subject=%s body=%s", add, taitle, body)ShellExecute( 0, "open", mailmes, 0, 0, SW_SHOW)
  • スクリーンセーバーを作る必要性
    MinGWのパブリックドメインのソース を ABに変換する 途中まで…あとはまかせた Const DLG_SCRNSAVECONFIGURE= 2003Const idsIsPassword=1000Const idsIniFile=1001Const idsScreenSaver=1002Const idsPassword=1003Const idsDifferentPW=1004Const idsChangePW=1005Const idsBadOldPW=1006Const idsAppName=1007Const idsNoHelpMemory=1008Const idsHelpFile=1009Const idsDefKeyword=1010Const IDS_DESCRIPTION =1Const ID_APP =100Const WS_GT =WS_GROUP or...
  • リファレンス
    ActiveBasicの仕様、命令、関数のリファレンス ※書き方 I.標準関数 データ型変換関数 CDbl CInt CSng ポインタ関連の関数 GetDouble GetSingle GetDWord GetWord GetByte StrPtr 数学関数 Abs Atn Cos Exp Fix Int Log Rnd Sgn Sin Sqr Tan HIBYTE HIWORD LOBYTE LOWORD MAKELONG MAKEWORD 文字列関数 Asc Chr$ Date$ Hex$ Inkey$ Input$ InStr Left$ Len MakeStr Mid$ Oct$ Right$ Space$ Str$ String$ Time$ Val ZeroString ファイル関連の関数 _splitpath Eof Loc Lof メモリ関連の関数 ma...
  • 正規表現を使う
    BREXEXP.DLLをダウンロードする。 http //www.hi-ho.ne.jp/babaq/bregexp.html BMatchのみつかってみる。VC用は使えるがVB用の関数はエラーになる。 ポインタ操作が絡むのでややこしい。 構造体の定義は適当なのできちんと動くか不明。 #consoleType BREGEXPoutp As BytePtroutendp As BytePtrsplitctr As Integersplitp As BytePtrrsv1 As Integerparap As BytePtrparaendp As BytePtrtranstblp As BytePtrstartp As BytePtrendp As BytePtrnparens As Integerend typeDeclare Function BMatch Lib &qu...
  • ステップ13 「アプリケーション アイコンを設定する」
    今回は、自作アプリケーションの作成をしたらまずは行いたい項目「アイコンの設定」についての解説をします。コーディング作業はなく、とても簡単ですので、5分で終わってしまうかも!? ステップ11で作成したTextEditorのプロジェクトファイルを再利用し、アプリケーション アイコンの説明をしていきます。といっても、TextEditor以外のプロジェクトを使ってもらってもなんら差し支えありません。 なにはともあれ、アイコンファイルがなければお話にならないので、まずは作ってみましょう。アプリケーション用アイコンの編集には dotwork などのソフトウェア(フリー)がお勧めです。「作るの面倒~」な方は、サンプルを用意しましたので、ご利用下さい。 アイコン サンプル(右クリック&「対象をファイルに保存」をクリック) アイコン ファイルは、32*32、16*16の2...
  • メモリ上の機械語プログラム
    参考→http //www.activebasic.com/forum/viewtopic.php?t=308 Function SetAsm(asm As *Byte, codesize As Long) As VoidPtrSetAsm=VirtualAlloc(NULL, codesize, MEM_COMMIT, PAGE_EXECUTE_READWRITE) '追加memcpy(SetAsm,asm,codesize)End FunctionSub FreeAsm(func As VoidPtr)VirtualFree(func, 0, MEM_DECOMMIT or MEM_RELEASE) '追加End Sub'機械語コード(_stdcall)Dim asm[ELM(40)]=[ h55, h8B, hEC, h51, h8B, ...
  • 区間の包含関係
    /***********************************************************contain.c -- 区間の包含関係***********************************************************/#N88BASICType intervalleft As Longright As LongEnd Type'Sub bsort(base As *interval, num As DWord, size As DWord, f As VoidPtr)Dim compare As *Function(a As *interval, b As *interval) As Longcompare = fDim i As Integer, j As Integer, k As IntegerDim x As ...
  • ABのヘルプを充実させよう!
    ABのヘルプに全文検索をつける ABのヘルプはchm形式ですが、chm形式の醍醐味である全文検索がありません… どうして無いの?という話ですが、Compile full-text search infomationにチェックを入れて ABのヘルプをリコンパイルしてみると必ずヘルプコンパイラが落ちます。 これはヘルプコンパイラのバグでもあるんですが、ABのヘルプにも問題があって、 落ちる場所であるPages\Command\Window.htmとPages\API\Window\Window\CreateWindowEx.htmのソースを見ると次のように書かれている箇所があります。 コントロールのテキスト中のアンパサント「 」文字を、 htmlでは&を&としなければいけませんのでこれを修正します。 はい。これでCompile full-...
  • 線形合同法
    /***********************************************************crnd.c -- 線形合同法***********************************************************/Dim seed = 1 As DWord/* 任意 */Sub init_rnd(x As DWord)seed = xEnd SubFunction irnd() As DWordseed = seed * 1566083941 As DWord + 1irnd = seedEnd FunctionFunction rnd() As Double /* 0 = rnd() 1 */rnd = (1 / 4294967296) * irnd() As DoubleEnd Function/**************...
  • AB以外の開発環境
    フリーのもの ActivePerl |WinでPerlを使うならこれ。 StrawberryPerl |WinでPerlを使うものその2。 Digital Mars C, C++ and D Compilers |D言語。C/C++コンパイラもある。omf形式を吐くのでMS厨とは相性悪し。 FreeBASIC |マルチプラットホームかつオープンソースなBASICコンパイラ。インタプリタではない。 基本構文はQBasic互換であるがオブジェクト指向やポインタなど独特の言語拡張の導入は ActiveBasicと似ていてANSI非互換である。非常に多くのライブラリがある。 Ver1.0から64bit環境に対応。(フリーなBASICの64bit環境はActiveBASICとFreeBASICしかない) Smal...
  • ステップ14 「DLLを作る」
    Basic言語でDLLを作るだって?冗談言うなよ! それが、ActiveBasicでは自然な形で作れてしまいます。ネイティブ コードにコンパイルされるため、DLLプログラムとして要求されるだけの実行速度、プログラム サイズが期待できます。 作り方はとてもシンプル 通常のEXEプログラムと違う点は以下の2つだけ。 ① プロジェクト作成時に「DLL」を選択する ② エクスポートする関数には "Export" 指定をする ①は画面の説明に従うだけなので解説の必要はありませんね。②に関してですが、今までは関数を定義するというと、 Sub func1(parm...) ... End Sub Function func2(oarm...) As Long ... End Sub という感じに定義するのに対し、エ...
  • mpglib.dllを使ったmp3再生
    前回は素のwaveファイルお再生しました。 これを使えばほかのものでも応用ができます。 今回はmp3をやります。 mp3はデコーダやプレイやがあって今さらですけど、 ABでもできるんですよ。 今回使うのは定番のmpglib.dllです。 mpglib.dllのある場所http //mpesch3.de1.cc/misc.html こいつはABから使うことを想定していないしドキュメントも不親切です だから元となったmpg123というライブラリも調べてみるといいかもしれませんね。 まずこのDLLは3つの関数しかないので、簡単ですけど、便利な昨日がないので 自分で作ります。 ID3V2も自力で読み飛ばさないといけません。 abmpglib.abp Const AUDIOBUFSIZE = 16384Const SBLIMIT ...
  • Exp
    名称 |Exp 読み |経験値、爆発 定義 |Exp(number As Double) As Double 説明 |指数関数を計算します。 戻り値 |この関数は、のe^number という計算を行います。e の値は約 2.718282 です。 参照 |Log
  • MCI
    関数 mciExecute mciGetCreatorTask mciGetDeviceID mciGetDeviceIDFromElementID mciGetErrorString mciGetYieldProc mciSendCommand mciSendString mciSetYieldProc 構造体 MCI_BREAK_PARMS MCI_DGV_CAPTURE_PARMS MCI_DGV_COPY_PARMS MCI_DGV_CUE_PARMS MCI_DGV_CUT_PARMS MCI_DGV_DELETE_PARMS MCI_DGV_FREEZE_PARMS MCI_DGV_INFO_PARMS MCI_DGV_LIST_PARMS MCI_DGV_LOAD_PARMS MCI_DGV_MONITOR_PARMS MCI_DGV_OPEN_PARMS MCI_DGV_...
  • プログレスバーの中に文字が表示できるやつ
    Class HIRAI_PROGRESSPrivatehWnd As HWNDhDC As HDChMDC As HDChBmp As HBITMAPrcc As RECThPen As HPENhBrs As HBRUSHmax As Longmin As Longcur As Longspo As LongPublicSub ~HIRAI_PROGRESS()DeleteObject(hBrs)DeleteObject(hPen)DeleteObject(hBmp)DeleteDC(hMDC)ReleaseDC(hWnd, hDC)End SubSub Set(hWnd2 As HWND)hWnd = hWnd2GetClientRect(hWnd, rcc)hDC = GetDC(hWnd)hMDC = CreateCompatibleDC(hDC)hBmp = CreateComp...
  • 式の評価
    /***********************************************************eval.c -- 式の評価***********************************************************/#consoleDeclare Function printf CDECL Lib"msvcrt" (fmt As *Byte, ...) As LongDeclare Function getchar CDECL Lib"msvcrt" () As LongDeclare Function isdigit CDECL Lib"msvcrt" (c As Long) As LongDeclare Function cexit CDECL Lib"msv...
  • Hex$
    名称 |Hex$ 読み |ヘックスドル 定義 |Hex$(num As LONG_PTR) As String 説明 |16進数文字列の生成 戻り値 |文字列が返ります。 参照 |Oct$
  • 歴史
    太古 ABは1999年にバージョン1がリリースされたらしい。 そして2.62まではインタプリタとして機能していた。 この時代はよくHSPと比較されていたが、当然AB2に勝ち目はなかった。 Ver3 AB3の正式版リリースは2003年7月。 ついにABはコンパイラを持つようになった。 ここからしばらくの間、ABは絶頂期を迎える。 当時も無料でexeを吐く処理系はあったが、ABのように国産でIDEの環境なんてなかったはずなの。 こんな美味しい環境を使わないアホはいないということで、きっとユーザーも増えたはずだ。 このころ登場した一部のヘヴィーユーザーは未だに語りぐさとなっている。 山本氏がカンパを始めたのもこのころである。 この時代はよくVBと比較されていたが、当然AB3に勝ち目はなかった。 Ver4 バージョン3で勘違いしたのが悪夢の始まりである…。 A...
  • ステップ9 「ビットマップビューワを作る」
    今回は、メニューコントロールや「ファイルを開く」ダイアログボックス、ビットマップ用のAPI関数を活用し、ビットマップビューワの作成にチャレンジしてみます。 プロジェクトの作成 ノーマル ウィンドウ ベースのプロジェクト(プロジェクト名を "BmpViewer" とします)を作成し、メニューの作成(IDは "MainMenu")、メインウィンドウへのメニューの貼り付けを行っておきましょう。 "MainWnd" のプロパティ設定 まずは、ベースとなる "MainWnd" を開き、ウィンドウ プロパティの設定を行います。 背景色のボタンをクリックし、"NULL" に設定しておきます。 メニューを "なし" から "MainMenu&qu...
  • 値の交換
    aとbの値を交換するためのアルゴリズムです。 Sub swap(ByRef a As Long, ByRef b As Long) Dim temp As Long temp=a a=b b=tempEnd Subtempを用いない手法もあるみたい… http //www.dd.iij4u.or.jp/~okuyamak/Information/xor_fixed_swapping.html tempを使わない方法の1つにXORを使った方法がありますが、このようにお勧めではないですよ。他の手法も概ね同じです。
  • ldexp
    名称 |ldexp 読み |えるでーえきすぽ 定義 |ldexp(x As Double, k As Long) 説明 |2のk乗のx倍の値を返します。 戻り値 |同上 参照 |frexp
  • frexp
    名称 |frexp 読み |ふらーえきすぽ 定義 |frexp(x As Double,ByRef n As Long) As Double 説明 |浮動小数点を仮数部、指数部に分解します。 戻り値 |x = 戻り値 * (2 ^ n) 参照 |ldexp
  • 逆三角関数
    三角関数の逆関数 変数xを与えられたときに tanθ=x なる θ を求めるのが逆正接(アークタンジェント)である。与えられたxに対して tanθ=x を満たすθは無数に存在するが、通常は1価関数とするために -π/2 θ π/2 の範囲とする。ActiveBasicではAtn関数が用意されている。 このほかにも、sinθ=x を満たすθ(-π/2 θ π/2)を求める逆正弦(アークサイン)や cosθ=x を満たすθ(0 θ π)を求める逆余弦(アークコサイン)などもあるが、これらの関数はActiveBasicでは用意されていない。ただし、これら逆関数には以下のような関係が成り立つため容易に求めることができる。 arcsinθ=arctan(θ/Sqr(1-θ^2)) arccosθ=π/2-arcsinθ #N88BASICConst N = 24...
  • 指数関数
    自然数eを底とする指数関数。 指数関数は級数展開で求めることができる。x 0 である時は、級数展開の各項に正負が交互に現れるため桁落ちが生じる。そこで、指数関数の逆数を計算することによりx 0の計算に直す。 収束を早めるため、x=t+k*ln(x), -ln(x)/2 x ln(x)/2 となるtとkを求め、Exp(x)=Exp(t)*2^kとする。 このほかに、連分数を使って求める方法もある。 ActiveBasicでは級数展開を用いたアルゴリズムでExp関数が用意されている。 #N88BASICConst LOG2 = 0.6931471805599453094172321214581765680755'log_e(2)Function lldexp(x As Double, k As Integer) As DoubleDim w As ...
  • htmlhelp
    'htmlhelp.sbp'05/05/10'06/09/10 最後まで書いた' Commands to pass to HtmlHelp()Const HH_DISPLAY_TOPIC = H0000Const HH_HELP_FINDER = H0000 ' WinHelp equivalentConst HH_DISPLAY_TOC = H0001 Const HH_DISPLAY_INDEX = H0002 Const HH_DISPLAY_SEARCH = H0003 Const HH_SET_WIN_TYPE = H0004Const HH_GET_WIN_TYPE = H0005Con...
  • 逆写像ソート
    整列アルゴリズムのひとつ。 分布数えソートと同じく実行時間は O(n) であり安定であるが、分布数えソートよりも若干遅いようである。整列に使用するキー値は一定の範囲の整数でなければならない。アルゴリズムは以下のとおり。 x = a[i] ⇔ i = index[x] となる index[x] を作成する もし x = a[i] となる i がなければ index[x] = -1とする キー値が重複する場合、別配列 next[i] を用いてその並びを記述する(ex:a[i] = a[j] = a[k] ⇒ next[i] = j, next[j] = k, next[k] = -1) index[x] -1のとき、a[index[x]] を書き出す プログラミング掲示板「ソートロジック大会」なども参照のこと Const MAX = 100Const MIN =...
  • GDIでお絵かき
    プロジェクトエディターにてウインドウを作成。 プロジェクト名 = hiraiGDI '-----------------------------------------------------------------------------' イベント プロシージャ'-----------------------------------------------------------------------------' このファイルには、ウィンドウ [MainWnd] に関するイベントをコーディングします。' ウィンドウ ハンドル hMainWnd' TODO この位置にグローバルな変数、構造体、定数、関数を定義します。Const ToRad(x) = (x * 3.14/180)Class HIRAIGDIPriv...
  • For~Next
    名称 |For~Next 読み |フォーネクスト 文法 |For counter = start To end [ Step step] ... [Continue] ... [Exit For] ... Next [counter] 説明 |counterの値がendになるまで繰り返す。増分は1だがStepで増分値を返ることができる。 Whileも同じ使い方が可能だが、Whileとの違いはWhileが条件での繰り返しなのに対し、Forは回数の繰り返しである。
  • Bernoulli(ベルヌーイ)数
    正接(タンジェント)の級数展開など種々の展開式の係数となる重要な数。 #N88BASIC'最大公約数(the greatest common divisor)を求める関数Function gcd(x As Double, y As Double) As DoubleDim t As DoubleWhile y 0t = fmod(x, y)x = yy = tWendgcd = xEnd Function'浮動小数点剰余を求めるFunction fmod(x As Double, y As Double) As DoubleDim i As DWordIf y = 0 Thenfmod = 0Exit FunctionEnd Ifi = Int(x / y)fmod = x - i * yEnd Function'計算機イプシロン(1 + eps ...
  • バブルソート
    整列アルゴリズムのひとつ。 安定な整列法である。実行時間はO(n^2)である。 配列の先頭から隣通しを比較して逆順であれば交換する。これを交換できなくなるまで続ける。 プログラミング掲示板「ソートロジック大会」なども参照のこと TypeDef keytype = IntegerSub bubblesort(n As Integer, a As *keytype)Dim i As Integer, j As Integer, k As IntegerDim x As keytypek = n - 1While k = 0j = -1'番兵のセットFor i = 1 To k + 1'隣通しの比較と交換If a[i - 1] a[i] Thenj = i - 1x = a[j]a[j] = a[i]a[i] = xEnd IfNext ik = jW...
  • @wiki全体から「cmd.exe」で調べる

更新順にページ一覧表示 | 作成順にページ一覧表示 | ページ名順にページ一覧表示 | wiki内検索