タグ

ブックマーク / urasandesu.blogspot.com (4)

  • SSCLI2.0 ビルド戦記 - Battle Against Makefile -

    Win XP(x86) + VS2008 でビルドしようなんて思うから…。 アンマネージ API を使いたい時に困るのがサンプルコードの探しにくさ。日語の情報はもちろん絶望的だし、家 MSDN にあるリファレンス も、I/F の簡単な説明しかない…。まずは、"Hello, world!!" から始めたくても、一連の流れがわかるのは .NET Framework SDK Version 1.1 についてくる Metadata Dump Utility や SMC - Simple Managed Compiler Sample が、唯一の頼みの綱という状態。…かと言って、これらでも全ての API 網羅してるわけではないわけで。 発端は、SMC のコードを追っていて。 SMC って、MethodBody の RVA についての計算と領域の確保を手動でやってるんです。あれ?アンマネージ AP

    SSCLI2.0 ビルド戦記 - Battle Against Makefile -
    mitsu1986
    mitsu1986 2014/09/23
  • 11 年目の "Hello World!" - Basics of CLI begun with 11th year -

    .NET開発者向けツール開発な話題が増えるといいな。 拙い英語力は技術力でカバー!・・・とか言ってみたいところですが、そうも行かず。かと言って、先週末受けた TOEIC は悲壮感が漂う始末...( = =) CLI が世に出て 11 年が経とうというのに、この辺りの情報は相変わらず日語の情報が絶望的な状態。まあ嘆いても仕方がないので、前回に引き続きアンマネージ API です。まずはまずは "Hello World!" をををををと調べ続けた結果をご報告いたします。 ECMA C# and Common Language Infrastructure Standards にある CLI の仕様書、Common Language Infrastructure (CLI) Partition II: Metadata Definition and Semantics を読み解き、バイナリを解析

    11 年目の "Hello World!" - Basics of CLI begun with 11th year -
    mitsu1986
    mitsu1986 2014/09/23
  • 続・C# 動的メソッド入れ替え - Sequel: Apply a monkey patch to any static languages on CLR -

    申し訳程度の C# 要素です (>_<) @urasandesu こと、杉浦と申します。はじめましての方ははじめまして! C# Advent Calendar 2011 の 13 日目を担当させていただくことになりました。よろしくお願いいたします。 ネタは、.NET 開発の中でも日の当たりにくい低レイヤな部分、「アンマネージ API」を取り上げます。 タイトルにもある通り「C# で動的にメソッドを入れ替える」という、マネージコードだけではなかなか実現できないことをやってみることにします。また、元々日語になっている資料やサンプルコードが少ない分野ですので、これからコンパイラやプロファイラなどをやってみたい方の学習の一助として、もしくはどんなものかちょっと覗いてみたい方への参考になればと思う次第です。 ちなみに、私の Blog のこの記事やこの記事辺りの続編となりますので、もし興味がありまし

    続・C# 動的メソッド入れ替え - Sequel: Apply a monkey patch to any static languages on CLR -
    mitsu1986
    mitsu1986 2014/09/23
    “うらぶろぐ @urasandesu: 続・C# 動的メソッド入れ替え - Sequel: Apply a monkey patch to any static languages on CLR -”
  • C# 動的メソッド入れ替え - Apply a monkey patch to any static languages on CLR -

    たまにはこんな、手品の話も。 会社の飲み会の時のネタとしては使えないですが、仕事では使えること請け合いです! (`・ω・´) 手元にコンパイル済みの dll/exe があるとき、その振る舞いを実行時にだけ変えてみたいってことがしばしばあるかと。例えば、以下のようなシチュエーションが思いつきます・・・というか実際ありました (^_^;) ドキュメントが不十分で挙動がよくわからない。調査するために、デバッグプリントを仕込みたい。 特定の条件になると内部で例外がスローされちゃう。どうもバグみたいなので、修正したいけどソースコードがない。 パラメータを変化させながらタイミングを調整したい。開発効率を上げるために、動的言語と連携するような仕組みを一時的に入れ込みたい。 外部機器やネットワーク、DB に依存してて自動テストがしにくい。テスト中はスタブに入れ替えたい。 RubyPython みたい

    mitsu1986
    mitsu1986 2014/09/23
  • 1