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

検索 :
  • srand
    名称 |srand 読み |えすらんど 定義 |srand(dwSeek As DWord) 説明 |乱数をdwSeekの値で初期化します。 戻り値 |なし 参照 |rand | Rnd | Randomize
  • rand
    ... 参照 |srand | Rnd | Randomize
  • 暗号
    ...clare Sub srand CDECL Lib"msvcrt" (seed As DWord)'Declare Function rand CDECL Lib"msvcrt" () As DWordDim c As Long, r As LongDim infile As HANDLE, outfile As HANDLEDim re As Longinfile = CreateFile("in.txt", GENERIC_READ, 0, ByVal 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0)outfile = CreateFile("out.txt", GENERIC_WRITE, 0, ByVal 0, CREATE_ALWAYS, F...
  • Randomize
    名称 |Randomize 読み |ランドミゼ 定義 |Randomize [num] 説明 |乱数の初期化を行います。 パラメータにnumをとるようになっているが 実装ではパラメータを受け付けないようになっているため Randomize 555などとやるとエラーになる。 参照 |Rnd
  • リファレンス
    ... pow rand srand II.命令 入出力命令 Open Close Print Write Input Field Get Put グラフィックス命令(N88) Cls Circle Line Pset Paint ウインドウ操作命令 Window DelWnd MsgBox その他命令 Beep ChDir Color Debug End Exec Kill Locate MkDir Randomize III.構文 If Goto GoSub~Return For~Next While~Wend Do~Loop Select Case Declare Sub Function Macro Dim Const Enum Let Set〇〇 Type TypeDef With Class~End Class IV.Win32API MCI GDI user3...
  • Rnd
    名称 |Rnd 読み |ランド、ランダム、DQ6 定義 |Rnd() As Double 説明 |乱数発生 戻り値 |0 以上、1 未満の実数が返る。 参照 |Randomize
  • mciSendCommand
    mciSendCommand(マッキ・センド・コマンド)とはMCI要するに 音楽や動画の再生、録音装置に命令する関数である。 流れとしては デバイスを開く 再生や録音の命令 デバイスを閉じる の3セット。←当たり前か この関数は エラー番号 mciSendCommand(デバイス, コマンド, フラグ, 構造体) という書き方で、 コマンドやフラグ、構造体はMCIのページに書いてある通り。
  • B木
    Barance-Treeの略でデータ構造である木構造の一つ。 通常の2分探索木はデータを昇順ないし降順に入力すると左右どちらかにのみ枝が伸びるため、その後の探索が非常に遅くなる(O(n)程度)。そこでどのような順序でデータを入力しても左右のバランスを保つように工夫されたもの。 B木やその改良型であるB*木、B+木はデータベースなどで用いられている。 B木はページ単位(ベージ構造体)で情報を格納し、その内容は下記の通り。 そのページが持つキーの個数n キーの値(n個:key[0], key[1]...key[n-1]) 各キーに付随する情報(n個:info[0], info[1]...info[n-1])  ※下記プログラムでは省略 他のページへのポインタ(n+1個:branch[0], branch[1]...branch[n]) 各ページで格納するキ...
  • Mandelbrot (マンデルブロート) 集合
    /***********************************************************mandel.c -- Mandelbrot (マンデルブロート) 集合***********************************************************/#N88BASICConst M = 1000Const XMAX = 640Const YMAX = 400Sub main()Dim i As Long, j As Long, imax As Long, jmax As LongDim maxiter As Long, count As LongDim xmin, xmax, ymin, ymax, x, y, a, b, a2, b2, dx, dyDim color[M] As LongInput "xmin = ...
  • 文字コードの変換
    UTF82SJIS http //blog.goo.ne.jp/xmldtp/e/7eaeeb3dabfe975dbc57f73aefb1c059からコピペ #N88BASIC Function utf8ToSjis(utf8 As *Byte) As *Byte Dim utf16 As *Word Dim wlen As Long Dim sjis As *Byte utf8ToSjis = NULL If utf8 = NULL Then Exit Function End If ============================== UTF8=>UTF16変換 ============================== まずは、wlenの長さをとる wlen = MultiByteToWideChar(CP_UTF8, 0, utf...
  • 区間の包含関係
    /***********************************************************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 ...
  • じゃんけんゲーム
    乱数にXorShiftを使ったじゃんけんゲーム。 Dim XorSeed[3] As DWord'乱数初期化Sub sxor128() As DWordDim s As DWordDim n As DWords = GetTickCount()For n=0 To 3s = 1812433253 * (s Xor (s 30)) + nXorSeed[n] = sNextEnd Sub'乱数発生Function xor128() As DWordDim t As DWordt = (XorSeed[0] Xor (XorSeed[0] 11))XorSeed[0] = XorSeed[1] XorSeed[1] = XorSeed[2] XorSeed[2] = XorSeed[3]XorSeed[3] = (XorSeed[3] Xor (Xor...
  • プログレスバー
    RADなら貼りつければそれで終り。 自力ならクラス"msctls_progress32"で子ウインドウ作成。 ウインドウハンドルを取得してメッセージを送るだけ。 メッセージ wParam lparam 意味 PBM_SETRANGE32 最小 最大 範囲を指定 PBM_SETSTEP 増分 - PBM_STEPITの増分値 PBM_STEPIT - - PBM_SETSTEPの値だけ進める PBM_SETPOS 位置 - 現在位置を指定 PBM_GETPOS - - 現在位置を取得 例 ウインドウにボタンとプログレスバーを貼り、ボタンpush,ウインドウCreateイベントを書く。 Sub MainWnd_CommandButton1_Click()Dim i As LongDim hpg As HWNDhpg=GetDlgItem(hMai...
  • ステップ17 「RPGのマップ移動機能を作る②」
    前回やった、草原マップ、主人公キャラの描画に引き続き、今回はキー操作に反応し、キャラが自由に歩き回れるようにするプログラムを作成していきます。 今回作成するプログラムのサンプルファイルを置いておきますので、参考にしたい方はどうぞ☆ Fantasy2.zip(プロジェクトに必要なファイルがすべて入っています) 今回も、First Seed Materialで公開されているRPG用素材を利用させていただきます。 前回作成したプログラムがある方は、MainWnd.sub のプログラムを変更するだけで実現できます。このページのプログラムリストは、前回からの変更点を太字で示してあるので、それを参考に改良してみて下さい。 新規にプログラムを作成する方は、まずはプロジェクトを作成しておきましょう。新規作成→プロジェクトで、"Fantasy" などという名前のプロ...
  • N88BASICとの互換性
    N88BASIC互換性について PC8801とかのようにOSなんてものがROM-BASICとゴチャ混ぜ状態だったころのようなあの時代には戻れません。 以下にABのN88BASIC互換性のポイントを挙げる ダイレクトモードは無い 各種コマンドは無い。SAVE,LOAD,LIST,RUNはもちろんAUTO,KEYも無い。 READ,DATA関連は無い 変数はDimで明記しなければならない ON 〇〇 GOTO/GOSUB関連も存在しない SCREEN 3,0,0,1 CONSOLE ,,0,1 DEFINT A-Z CLS 3←CLSしか無い テキスト、グラフィックの重ね合わせはできない。 BEEP(0) BEEP(1)でブザーを作ることはできない。 関数は大文字小文字を区別する(ABSはAbs、ASCはAscとなる) このようなワケで、N88BASICのプログラムを移植す...
  • うらない
    #N88BASIC#include api_mmsys.sbp Dim kuji[4] = ["大吉","基地","凶","大凶"] As *ByteDim Dim I$ As StringDim c As DWordRandomizePrint "お み く じ"Print "今日の運勢は……"BGM("C \Windows\media\onestop.mid")'占い結果によって曲が変わって楽しいc = Int(Rnd()*4)Color 6-cSleep(1500)Print MakeStr(kuji[c])Color 7,0Sleep(3000)Input "リターンキーを押してください", I$BGM(NULL...
  • ステップ16 「RPGのマップ移動機能を作る①」
    今回はスプライト処理をはじめとするテクニックを利用し、マップ、および主人公の描画をRPGライクに行います。 なお、今回からの解説は、First Seed Materialで公開されているRPG用素材を利用させていただきます。 今回作成するプログラムのサンプルファイルを置いておきますので、参考にしたい方はどうぞ☆ Fantasy.zip(プロジェクトに必要なファイルがすべて入っています) このステップの要点は、スプライト処理です。ビットマップのマスク処理などといったほうが、親しみがあるかもしれません。具体的には、ビットマップに対して以下のような演算をさせ、画面に出力します。 = AND OR これを動かすとなると少し大変なので、まずは右上にあるような画面を作ってみることにしましょう。 ノーマル ウィンドウ ベースの新規プロジェクトを作成し...
  • ステップ18 「RPGのマップ移動機能を作る③」
    前回の解説で主人公キャラが自由に動け回れるようになったので、今回は任意のマップを描けるようにしてみます。 マップ図にマップチップを割り当てるという、非常にシンプルな細工をするわけですが、マップチップの種類が非常に多いため、数字攻めになってしまうかもしれませんが、根気良くがんばりましょう。 今回作成するプログラムのサンプルファイルを置いておきますので、参考にしたい方はどうぞ☆ Fantasy3.zip(プロジェクトに必要なファイルがすべて入っています) 今回も、ステップ17「RPGのマップ移動機能を作る②」で掲載したプログラムの変更点を太字で表しているので、参考にして下さい。 また、以下のようなマップの配置図(25*20)をCSV形式で用意しておく必要があります。プロジェクトが保存されているディレクトリに "map.csv" というファイル...
  • 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-...
  • ライフゲーム
    昔なつかしいライフゲーム。 ルールは簡単。 セルが生きていて周り8つのセルを数えて2か3なら生き残る、 セルが死んでいて周りが3つなら誕生。 これだけ。 ライフゲーム #N88BASIC Const XMAX = 30 Const YMAX = 30 Const XMIN = 1 Const YMIN = 1 Const INIT_CELL_PER = 20 初期ライフの割合 Const TIMER = 250 Const CELLSIZE = 16 Enum MAPPING MAINMAP SUBMAP End Enum Dim cell[XMAX,YMAX,1] As Byte MAIN() Sub MAIN() Randomize INIT() While (1) DRAW() Sleep(TIMER) NEW...
  • ステップ10 「プログレスバーとタイマー処理」
    型変換の警告が出るが公式の解説でOK プログレスバーとは、インストール画面などでよく見かけますね。処理の進行具合を示すメーターのようなものです。今回は、タイマー処理とプログレスバーを組み合わせ、カウントプログラムを作ってみます。 早速、新規プロジェクトを作るわけですが、注意点が1つ。プログレスバーはコモンコントロールの部類に入り、新規プロジェクト ダイアログの2つ目の画面(プロジェクト オプションが設定できるところ)で、「コモンコントロールを使用する(api_commctrl.sbp)」にチェックを入れておかなければなりません。その点を踏まえ、プロジェクトを作成してみましょう(プロジェクト名は "TimeCount" とします)。 ちなみに、プロジェクト オプションは、プロジェクト作成後、メニューの「表示」→「プロジェクト オプション」からも変...
  • メモリ
    メモリとはコンピュータの記憶装置のこと。 CPUから直接アクセスできるものをいい、主記憶装置などとも呼ばれる。 ハードディスク(HD)やフロッピーディスク(FD)とは区別される。 メモリには大きく分けてRead Only Memory(ROM)とRandom Access Memory(RAM)に分けられる。 ROMは基本的には不揮発性(電源がなくても中身が消えない)で読み出し専用であり、 BIOSやファームウェア、ROM-BASICを書き込むことが主流だった。 RAMは逆に揮発性で読み書き可能である。OSのメインメモリやRAMディスクとして使い方が一般的。 SDカードやUSBメモリもRAMであり、OSによってはメインメモリとして扱うことも可能らしい。
  • プログレスバーの中に文字が表示できるやつ
    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...
  • とりあえず一般的なウインドウを作ってみたいんですけど。
    ABでウインドウを表示する方法にも幾つかあって、定番のRADを使う方法が一般的だと思う。 RADを使うと、裏で、ウインドウを作ったり、メニューやいろんなコントロールを付けてくれる。 これを今回は手書きでやってみよう。 まずはプログラムの提示。 ウインドウクラスの作成 Const classname = "AB-WINDOWCLASS" Main() ExitProcess(0) Sub Main() Dim wc As WNDCLASSEX Dim hwnd As HWND Dim msg As MSG ウインドウクラスの設定 With wc .cbSize = SizeOf(WNDCLASSEX) .style=CS_HREDRAW or CS_VREDRAW .lpfnWndProc = Ad...
  • ID3V1を取得
    #N88BASIC Dim id3genre[256] = [ _ "Blues", "Classic Rock", "Country", "Dance", "Disco", "Funk", "Grunge", "Hip-Hop", "Jazz", "Metal", "New Age", "Oldies", _ "Other", "Pop", "R B", "Rap", "Reggae", "Rock", "Tec...
  • FORTRAN
    最古の高級プログラミング言語。 昔のBASICはこれをパクっていた。
  • 幾何分布
    確率pで当たる懸賞にn回目でやっと当たる確率はPn = p * (1 - p) ^ (n - 1)である。この分布を幾何分布という。 確率1であたる宝くじが一回で必ずあたる? → このときP1 = 1 * (1 - 1) ^ (1 - 1) = 1 * 0 ^ 0となり、0 ^ 0を便宜的に1とすれば、1回目で当たる確率は1である。 確率0であたる宝くじは絶対あたらない? → このときPn = 0 * (1 - 0) ^ (n - 1) = 0となり、何回目でも当たる確率は0である。 幾何分布の乱数は、一様分布の乱数0 ≦ Rnd() < 1を用いて次のように生成できる。 (ABのRnd()は一様乱数か?) 注記 GeometricRnd?が返す値はPn(=n回目でやっと当たる確率)でなくてn(=n回目のn)である。 したがって、この関数は離散関数...
  • ステータスバー
    ステータスバーの中にプログレスバーを入れる。 プログレスバーをステータスバーの子にして、 SB_GETRECTでサイズ調整するのがミソ。 ↓プロジェクト名を"SPSP"にして、コモンコントロールを使用するにチェクを入れる。 '-----------------------------------------------------------------------------' イベント プロシージャ'-----------------------------------------------------------------------------' このファイルには、ウィンドウ [MainWnd] に関するイベントをコーディングします。' ウィンドウ ハンドル hMainW...
  • コンソールアプリ
    'コンソール#consoleDeclare Function SetConsoleTextAttribute Lib "kernel32" (hConsoleOutput As HANDLE, wAttributes As Word) As LongDeclare Function GetConsoleScreenBufferInfo Lib "kernel32" (hConsoleOutput As HANDLE, lpConsoleScreenBufferInfo As *CONSOLE_SCREEN_BUFFER_INFO) As LongType COORD X As IntegerY As Integer End TypeType SMALL_RECTLeft As IntegerTop As IntegerRight As In...
  • 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...
  • N88BASIC
    1000 1010 Hello World!! for N88(86)-DOS-BASIC 1020 (C) 2003, Omae-Mona 1030 All rights Reserved 1040 1100 GOTO *MAIN 1110 2000 *INIT 初期化 2010 DEFINT A-N DEFDBL O-Z 2020 SCREEN 3.0.0.1 COLSOLE 0.25,0,1 2030 CLS 3 2040 RETURN 2050 3000 *MAIN メイン関数 3010 GOSUB *INIT 3020 PRINT "Hello, World!!" 3030 END 10 IF INKEY$ "" THEN 30 20 GOTO 10...
  • Base64 エンコード
    文字列を入力しBASE64にエンコードしてみるテスト。 #N88BASICFunction Base64Enc(src As *Byte, dst As *Byte) As LongDim Base64Tbl = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" As *ByteDim i As Long, j As Long, n As Long, t As LongDim p As *Bytep = calloc((lstrlen(src)\3+1)*3+1)lstrcpy(p, src)While p[i]t = (p[i] 16) or (p[i+1] 8) or (p[i+2] 0)i=i+3For n=3 To 0 Step -1dst[j] = Base64T...
  • ラーメンタイマー
    プロジェクトエディターで簡単なラーメンタイマーを作ってみつ。 タイマー処理とGDIを使っている。 プロジェクト HiraiRamenTimar コモンコントロールを使用するにチェックを入れる。 次のコントロールを貼り付ける。 エディットボックス ID=EditBox1 ボタン ID=CommandButton1 プログレスバー ID=ProgressBar1 '-----------------------------------------------------------------------------' イベント プロシージャ'-----------------------------------------------------------------------------' このファイルには、ウィンドウ [...
  • 綺麗な花火
    N88BASICでグラフィック命令を覚えたら 最初に作るのが花火 '綺麗な花火#N88BASICCONST PI = 3.1416Const BASE = 380Dim x As Long, y As LongDim yy As Long, r As LongDim c As Long, k As DoubleDim p As LongDim ax As Long, ay As LongRandomizeCls 3Line(0,BASE)-(640,BASE)*LLLx = 70+Rnd()*500yy = 50+Rnd()*50'For y=BASE-2 To yy Step -1Circle(x,y),2,7Sleep(5)Circle(x,y),2,0Nextp = Rnd() * 4Select Case pCase 0For r=10 To 50 St...
  • 計算ゲーム
    #N88BASICDim a As Long, b As Long, c As LongDim i As Long, q As LongDim seikai As LongDim qq As StringRandomize Print "計算ゲーム"*LLPrint "1 足し算"Print "2 引き算"Print "3 掛け算"Print "4 割り算"Input iseikai = 0Select Case iCase 1Gosub *TASIZANCase 2Gosub *HIKIZANCase 3Gosub *KAKEZANCase 4Gosub *WARIZANEnd SelectPrint "正解率=";seikai * 100 / 10; "%&...
  • ステップ12 「N88BASICスタイルで行こう!(一休み?)」
    回までのページをちゃんと読んでくれた皆さん、少しお疲れのようですので、今回は幼少に戻った気分で、N88BASIC遊びをしてみます。 このページでは、技術的なことは忘れて、「あの頃」のプログラムをふんだんに使って懐かしむことにしましょう。思い出がない方も「元祖N88BASICはこんなもんだったんだ~」と頭の隅にでも入れておきましょう(私もその一人なのですが…)。このページに関しては、最新技術を無視し、時代に逆らった内容だということをお断りし、内容に入っていきます。 ということで、ここからは以下に示す2つの条件を除き、N88BASIC互換以外の命令語、関数は使いません!(命令語の詳細情報は、ヘルプファイルをご覧下さい) 条件1 ご存知の通り、ActiveBasicはWindowsプログラミング用に開発されているので、そのままではDOSみたいな画面は出てきませんし、Print...
  • スクリーンセーバーを作る必要性
    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...
  • 石取りゲーム1
    一山の石から交互に取り、最後に石を取った方が負けとなるゲーム。 ルールは以下のとおり。 N個の石から交互に石を取る 一回に取れる石はM個( M N )である 最後に石を取ったほうが負け パスはできない 石取りゲームのアルゴリズムは以下の通りである。 1回に取れる石数を3個とした時、相手が1, 2, 3個の石を取った時、自分は3, 2, 1個の石を取ることにする。そうすれば、石は毎回4個減ることになる。よって、残りの石数を (4k+1) 個にできれば、相手に最後の1個を残すことができる。 一般に、1回に取れる石数がM個であれば、残りの石数を k×(M+1)+1個(kは任意の整数)にできれば、上記方法で勝つことができる。もし残りの石数が k×(M+1)+1個 でなければ、ランダムな個数をとって相手の敗着を待つ。 #promptDim n As IntegerDim...
  • インターネット
    ABのサンプルにWinsockを使ったものが紹介されているので、ここではwininetを使ったものでも。 wininetはとても簡単で、ファイル操作と同じ感覚で使うことができる。 InternetOpenでNetを開く、 InternetOpenUrlでurlにつなぐ InternetReadFileで読み込む InternetCloseHandleで終了 HttpQueryInfoはサイズやタイプ、更新日時などの情報を得る 以下サンプル #console Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA"(lpszCallerName As BytePtr,dwAccessType As Long,_ lpszProxyName...
  • AVIファイルの操作
    #N88BASICDeclare Sub AVIFileInit Lib "avifil32" ()Declare Sub AVIFileExit Lib "avifil32" ()Declare Function AVIFileOpen Lib "avifil32" Alias "AVIFileOpenA" (ppfile As **DWord, szFile As *Byte, mode As Long, pclsidHandler As VoidPtr) As LongDeclare Function AVIFileRelease Lib "avifil32" (pfile As *DWord) As LongDeclare Function AVIFileInfo Lib "...
  • GDIでバックバッファを用いてウインドウに線を書く
    ウインドウ再描画のもう一つは、メモリー内にGDIビットマップを保持するヴぃでおめもり領域を確保し、ペイントいべんとでバッファヴいでおめもりを描画。 描画はバッファヴぃでおめもりに対して行う。 MainWnd.sbp '-----------------------------------------------------------------------------' イベント プロシージャ'-----------------------------------------------------------------------------' このファイルには、ウィンドウ [MainWnd] に関するイベントをコーディングします。' ウィンドウ ハンドル hMainWnd' TODO この位置にグローバ...
  • 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 ...
  • 印刷
    印刷 ローカルプリンタと カレントフォルダに"test.bmp"が必要。 '印刷テストDeclare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (lpApplicationName As BytePtr, lpKeyName As BytePtr, lpDefault As BytePtr, lpReturnedString As BytePtr, nSize As Long, lpFileName As BytePtr) As LongDeclare Function SetDIBitsToDevice Lib "gdi32" (hdc As Long,XDest As ...
  • mciSendString
    mciSendString関数 mciSendString(lpszCommand As BytePtr, _ lpszReturnString As BytePtr, _ cchReturn As DWord, _ hwndCallback As DWord, _ ) As DWord MCI(メディアコントロールインターフェイス)デバイスへ、コマンド文字列を送信します。
  • マルチスレッド
    スレッドの基本 スレッドの生成はCreateThread関数で行う。 スレッドは引数を1つだけもつ関数にする。 名前は何でもいい。 スレッドは戻り値を持っていて、GetExitCodeThreadで調べることができる。 スレッドの終を待つにはWaitFor〇〇関数を使うと良いかも。 #N88BASICDim hT As HANDLEDim id As DWordhT = CreateThread(ByVal 0, 0, AddressOf(t), 5, 0, Varptr(id))WaitForSingleObject(hT, INFINITE)CloseHandle(hT)Print "スレッドは正しく終了しました"Function t(a As DWordPtr) As LongPrint aEnd Function このようにサブスレッドを作る...
  • シリアルポートを使う
    本家掲示板のtxrx1.sbpをインクルード。 使用例 #console#include "txrx1.sbp"Dim hComm As LongDim stDCB As DCBDim timeout As COMMTIMEOUTSDim dummy As LongDim comnum[10] As Byte'comポート設定ZeroMemory(comnum,10)lstrcpy(comnum,"COM3")hComm=CreateFile(comnum,GENERIC_READ or GENERIC_WRITE,0,ByVal 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,0)'Openエラー処理IF hComm=-1 Thenprint "comm が使えない"...
  • ファイル圧縮してみよう
    Common Archivers Library からCAB32.DLL 開発者 SDK v0.98をダウソしましゅ。 展開して、cab32.dllを、システムホルダに投入します。 ABのプロジェクトでウインドウにリストボックス(ID=ListBox1)とボタン(ID=CommandButton1) だけの画面を作ります。このとき、MainWndの拡張スタイルでドラッグ&ドロップを許可にします。 イカのコードをコピペします。終わり。 ----------------------------------------------------------------------------- イベント プロシージャ --------------------------------------------------------------------...
  • waveファイルの再生
    #include api_mmsys.sbp Declare Function waveOutOpen Lib "winmm" (phwo As *HWAVEOUT, uDeviceID As DWord, pwfx As *WAVEFORMATEX, dwCallback As DWord, dwInstance As DWord, fdwOpen As DWord) As MMRESULTDeclare Function waveOutClose Lib "winmm" (hwo As HWAVEOUT) As MMRESULTDeclare Function waveOutPrepareHeader Lib "winmm" (hwo As HWAVEOUT, pwh As *WAVEHDR, cbwh As DWord) ...
  • 可逆圧縮(猿音)
    今回はオウディオの可逆圧縮をやってみよう。 いろんな形式があって迷うんだけど、ABでやるならapeが一番簡単かな。 Monkey s Audio からSDKをダウソ。MACDll.dllをシステムフォルダに投げる。 つぎにABでイカのコードをコピペ。 test.wavをHirai-Kimihiko.apeにエンコする。 #console #include api_mmsys.sbp Typedef APE_COMPRESS_HANDLE = VoidPtr Declare Function c_APECompress_Create Lib"MACDll.dll" (pErrorCode As *Long) As APE_COMPRESS_HANDLE Declare Sub c_APECompress_Destroy Li...
  • ダウンローダーを作ってみよう
    ABでもちょっとくふうすれば簡単なダウンローダーがすぐにできる。 ここでは限定的な機能しか無いダウンローダを作る。 連番のファイル例えばhttp //○○001.mp4~http //○○999.mp4 こんなものを毎回右クリするのは地獄だ。 せっかくABがあるんだから、自動化してみようかな。 連番の部分を(*)と置き換えて桁数を入力すれば、内部で展開する。 Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA"(lpszCallerName As BytePtr,dwAccessType As Long,_ lpszProxyName As BytePtr,lpszProxyBypass As BytePtr,dwFlags As Long) A...
  • @wiki全体から「srand」で調べる

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