etc.negui.readme

read me.
はじめに
この文書はNeGui及びそれに付随するものに対するドキュメントです。 readme.txtな役割をするものだと認識してください。

NeGuiとは
D用Window APIへ薄皮一枚のラッパー。 Windows APIを使用したプログラミングの経験のある人が対象。
もともとはネムぃ専用GUIクラスだったんだけどどんどんおかしな方向に走り出して今の姿に。 本来etc.negui.fileみたいなpackageは全く考慮してなかったし。

ライセンスとか
NYSL。
バグやら修正やら追加やらがあればサイトかメール(wokonomono@gmail.com )に連絡あれば嬉しいです。

使用準備
Bindings for the Windows APIのwin32\shlobj.dを一部修正する必要があります。
 module win32.shlobj;
 pragma(lib, "shell32.lib");

 // TODO: fix bitfields
 // TODO: CMIC_VALID_SEE_FLAGS
 // SHGetFolderPath in shfolder.dll on W9x, NT4, also in shell32.dll on W2K

 import win32.commctrl, win32.ole2, win32.shlguid, win32.shellapi;
 private import win32.prsht, win32.unknwn, win32.w32api, win32.winbase,
   win32.winnt, win32.winuser, win32.wtypes, win32.objfwd, win32.objidl;
 private import win32.winnetwk; // for NETRESOURCE


 import win32.oaidl; //@追加
 ...
上記の「@追加」の一行を追加してください。 Windows SDKも忘れずに。
あと引数がinoutになっている部分をrefに置き換える必要もあります。 これはコンパイル時に引っ掛かるのでそのときに修正してください。
budは無くてもいいけどその場合は下記versionをくっつけてください。
dmd @@@.d -version=WindowsXP -version=Unicode -version=IE7
		
versionそのものは環境に合わせてください。
あと.defファイルに
EXETYPE NT
SUBSYSTEM WINDOWS,5.0
		
するのも忘れないように。 値はターゲットに合わせください。
よくわかんない場合は素直にbud使ってください。 budを使う場合はetc.negui.bulidで最低限のversionは設定しているので特に何も考えることなく使用できます。
とまぁ本来ならこれでコンパイル出来るんだろうけど実際問題できません。 リンカやらスタティックライブラリの知識が皆無なのでなんとも言えませんが取り敢えずの回避策はbud @@@.d -fullすれば動きます。

識別子の指針
  • ※Dのスタイルとは合わないけれども。
    識別子 方針
    関数名 各単語の先頭は大文字。ただし配列への糖衣構文は先頭小文字
    メソッド Dの関数の書き方
    戻り値が構造体 でっかくなければそのまま、でかければref。Textに関しては絶賛迷走中。
    クラス 各単語の先頭を大文字
    インターフェイス 多重継承時にクラスなのかインターフェイスなのか明確にするため先頭に「I」、各単語の先頭を大文字
    構造体・共用体 全部大文字でアンダースコア '' は使用しない
    構造体・共用体メンバ メソッドと同じ
    クラス・構造体・共用体のprivate, protectedメンバ 各単語の先頭を大文字
    定数・列挙体・列挙型メンバ 全部大文字
    Windows API - 構造体 頻繁に使うもので定数とかあるやつはラップ
  • GUIに関係なさげなWindows APIもOK。
  • PhobosでできることはPhobosで。
  • 内部でメモリを拡張したりするものはその値を指定可能に。
History:
1.101
  • othersnegui.ddocの大幅変更、それに伴い関連部分の変更。
1.000 2010/05/02
  • others色々変更。
  • othersネムぃから分離。
  • others独立して公開。