カテゴリー別アーカイブ: プログラミング

VisualStudio 2008 Link.exe

VisualStudio 2008でリンクの時に

リンクしています...
LINK : fatal error LNK1000: Internal error during IncrBuildImage
Version 9.00.21022.08
ExceptionCode            = C0000005
ExceptionFlags           = 00000000
ExceptionAddress         = 0202FBCB
NumberParameters         = 00000002
ExceptionInformation[ 0] = 00000008
ExceptionInformation[ 1] = 0202FBCB
CONTEXT:
Eax    = 0202FBCB  Esp    = 0033EB58
Ebx    = 40008170  Ebp    = 0033EB84
Ecx    = 00B9D670  Esi    = 406B9730
Edx    = 0033EB74  Edi    = 00DFD6C0
Eip    = 0202FBCB  EFlags = 00010246
SegCs  = 00000023  SegDs  = 0000002B
SegSs  = 0000002B  SegEs  = 0000002B
SegFs  = 00000053  SegGs  = 0000002B
Dr0    = 00000000  Dr3    = 00000000
Dr1    = 00000000  Dr6    = 00000000
Dr2    = 00000000  Dr7    = 00000000
ビルド時間 0:34

というエラーで Link.exe が落ちる事がよくある。
これ、どうにかならないものかと検索してみたら
kb948127
こんなページが…。
Link.exe の不具合らしく修正が出ている。
早速適用。
いまのところ、同様の症状には出くわしていない。

PHPとPDF

PHPでPDFの操作ができるか調べてみた。
といっても、既存のPDFに文字を埋め込んだ位だけど…。
PHPにコンパイル時にいれられるPDFlibよりはFPDFを使った方がやりやすかった。
というか、試した環境で PDF_open_pdi が使えなかったからなんだけどね。。。
(PDF Import機能が有効になっていないと言われた。)
FPDFとFPDIとFPDF_TPLとMBFPDFを使えば、既存PDFを利用して日本語を書き込みできます。
やり方は…、いろんなサイトで紹介されているので検索してください(汗

WinUnit

このブログを見てた会社の人から、なにげにWinUnitの紹介が来た。
本人は試してないらしいが。
で、試してみた。
CppUnitよりは手軽な感じ。
ただ、テスト用の構成を作るかDebugビルドだけに止めておかないとな~って感じ。
CppUnit = 実コードとテストコードは別プロジェクト
WinUnit = 実コードとテストコードは同プロジェクト
っていう感じになるから、WinUnitは間違うとテストコード含みでリリース出来る。
入ってても使わないから気にしない?っちゃ気にしないんだろうけど。
不要な物で容量増やすのも微妙。
機能(というかAPI?)を提供するDLLとかを作る場合、いちいち呼び出し側を作るよりはテスト機構で試した方が断然早いから、そういう場合は重宝しそう。
WinUnitのコードは、MSDN February 2008 ( http://msdn.microsoft.com/ja-jp/magazine/cc184842.aspx ) このページにある Code Download ボタンから入手可能。
使い方説明はこっち。
ネイティブ C++ アプリケーション用の簡略化された単体テスト
http://msdn.microsoft.com/ja-jp/magazine/cc136757.aspx

PostgreSQLでのNULLソート

PostgreSQLでは、NULL値を含む値の降順ソート(DESC)を行うとNULL値が先に来る。
それでは都合が悪いことがあるわけで、その場合は

ORDER BY column IS NULL, column DESC

とすると、NULL値が末尾に来るようになる。
NULLかどうかの真偽でソートすればOKということらしい。
水曜日位の話だけど、分かるまで結構時間が掛かった…。

Firefoxでページ上から

Firefoxでページ上からブックマークに登録できる方法。

window.sidebar.addPanel("ページ名", "URL", "");

最後の引数の利用方法が不明だけど。
これで、Firefoxではブックマークに登録するためのダイアログが表示される。
でも、他のMozilla系ブラウザだとサイドバーが追加されるらしく、ブックマーク追加機能として利用できるのはFirefoxだけらしい。

ReleaseDate

Movable Type の投稿日は記事を書き始めた時刻にセットされる。
これはこれで有益な場合があるんだけど、大抵の場合は公開した瞬間の時刻にしたい。

っても、次の日とかに日記として書いた日時を 23:59:59 でその日として投稿し直す自分が書いても説得力は全く無いけど…。

そんな事を実現してくれるのが、藤本さん作の「ReleaseDate」プラグイン。
エントリーの日付を公開日時に自動変更するプラグイン(MT4用)
http://www.h-fj.com/blog/archives/2007/06/27-123224.php

去年のうちに MT4系 にも対応してあったので早速入れてみた。
記事投稿画面で、日時を自動変更するかしないかを選択可能。
デフォルトではON状態。
このデフォルトの状態はプラグインの設定から変更可能です。
インストール方法とかは本家ページを参照していただければ。
ちなみに、Six ApartのMovable Typeプラグインページからは MT3.3 までのプラグインしかリンクされていなかった。