Swanman's Horizon

性欲をもてあましつつなんらかの話をするよ。

2009-08-01から1ヶ月間の記事一覧

nilの逆参照

nilもポインタなので逆参照できる。なので先日のnilを渡すサンプルは次のようにも書ける。 ReadProcessMemory(..., PDWORD(nil)^); // 前回の例 ReadProcessMemory(..., DWORD(nil^)); // 今回の例

多次元配列の初期化。

Delphiの多次元動的配列は動的配列の動的配列という実装なので、メモリ上の配置は必ずしも連続しておらず(静的な場合は連続している)、Length(Hoge[0])の要素は10コだけど、Length(Hoge[1])の要素は2コ、というようにそれぞれ別の長さを設定してやることが…

参照渡しのパラメータにnilを渡す

動的配列の参照とほとんど同じだけど、例えばWin32APIのReadProcessMemoryの引数であるlpNumberOfBytesReadは本来オプションであり、nilを渡しても問題のないはずが、Windows.pasでは参照渡しとして宣言されているために直接nilが指定できなかったりする。 …

型なしパラメータに動的配列を渡す

動的配列や長い文字列をFillCharに渡してゼロフィルする、てのは日常的に行われる処理で、 FillChar(HogeArr[0], HOGE_LENGTH, 0); // HogeArr: array of Byte; FillChar(HogeStr[1], HOGE_LENGTH, 0); // HogeStr: string; というのがよく目にする記述だけ…

ヤクルトこわい

とりあえず一つ目はすでに溢れかえってるネタで濁しつつはてな記法の練習。 UTF-8になってるという情報は他にはたぶんないと思うけど、これも昔の日記ネタを掘り起こしただけだったりする。 次回以降はメソッド名を取得する方法、メソッドの引数の名前や型を…

Delphiでリフレクションもどき その1

Delphiでコンパイルされた実行ファイルには「実行時型情報(=RTTI)」と呼ばれるデータが埋め込まれる*1。これは主にIDEが使うために生成されるもので、普段はほとんど使う機会がないんだけど、TypInfoユニットにはこれらを参照する関数が実装されていて、…