Techracho

VisualStudio小ネタ

このエントリーをはてなブックマーク Share
2009.10.14    馬場   タグ: —    baba   

Visual Studioでの開発に関する小ネタ2点です。

●致命的なエラーC1902エラーが出た場合
VC++で、以下のようなエラーが出ることがあります。

プログラム データベース マネージャが一致していません。
セットアップが正しく行われているか確認してください。

これは、mspdb80.dllを手動で設置した場合などに発生するようです。
C:\Program Files(x86)\Visual Studio 9.0\VC あたりを探して、mspdb80.dllがあったらリネームしたり削除してみましょう。

●WindowsアプリとConsoleアプリの切り替え
C++などで開発する際、最初にWin32 ApplicationまたはWin32 Console Applicationを選びます。
これはエントリポイント名や呼び出し規則に影響し、Win32 Applicationの場合は、エントリポイントがWinMain()に、Win32 Console Applicationの場合はmain()になります。

これを後から変更するには、プロジェクトを右クリックして Properties → Configuration Properties → Linker → System → SubSystem を設定します。

change_subsystem

Mindtouch Deki 添付ファイル一覧

このエントリーをはてなブックマーク Share
    MindTouch Deki, 馬場      baba   

久しぶりのMindTouch Deki Wiki TIPSです。

Dekiでは各ページにファイルを添付でき、添付ファイルも検索対象になるため、とても便利です。
しかし、ページ数が増えてくると全添付ファイル一覧を見たくなることもあると思います。

今回は、Wiki内の全添付ファイルを一覧する方法を紹介します。かなり強引なDekiScriptなのですが・・・

まず、テンプレートに新しいページを作り、以下の内容をDekiScriptフォーマットで記述します。
ページ名はShowFilesとして保存しておきます。

<ul>
var pages = [ ];
foreach (var a in xml.select(wiki.tree("/"), "//a"))
{
    var text = xml.text(a, '.', null, true);
    var id = string.match(text, 'pageid="([0-9]+)"');
    var p = wiki.getpage(num.int(id));
    let pages ..= [ p ];
}

foreach (var p in pages) {
    foreach (var f in p.files) {
        <li>
        web.link(f.uri, f.name);
        web.html('<span style="color:#999999;"> (' .. num.floor( f.size / 1000) .. 'KB)</span>');
        if (f.description) {
            web.text(f.description);
        }
        web.html('<br />');
        web.html('<span style="color:#999999;">' .. f.page.path .. web.link(f.page.uri, 'goto this page') .. '</span>');
        if (f.ThumbUri) {
            web.html("<br /><img src=" .. f.ThumbUri .. " />");
        }
        </li>
    }
}
</ul>

あとは、任意のページで

{{ ShowFiles(); }}

と書けばOKです。

ちなみに、トップページに添付したものだけは出てきませんが、これは手抜きです^^

COPYRIGHT [C] 2009 BEYOND PERSPECTIVE SOLUTIONS LTD. ALL RIGHTS RESERVED.