C#

Last-modified: 2008-07-24 (木) 14:56:11

.NETアセンブリからANSI C++のソースを生成するツール>
.NETで契約プログラミングをするためのライブラリ
Parallel Extensionsテスト
NativeAPIを動的に読み込むための簡易ヘルパ
.NET向けのコンパイラを作る方法
.NET版UPX(Packer)NETZ
ToLookup・ILookupサンプル
dllやexeを結合するツール(ilmerge)
Cのヘッダーファイルからマーシャリングのための構造体を作ってくれるツールらしい(winsiggen.exe)

.NETで言語作るならironyでパースすべきなのかな?ironyは内蔵コンパイラでil吐くみたいorz
で、DLR AST作ってLCG。
CodeDomは評判悪いっぽい…

 
ネイティブDLLを呼び出す時のコストについて
 
92 名前: デフォルトの名無しさん [sage] 投稿日: 2007/10/06(土) 09:43:34

91
interopでのDLLやCOMの呼び出しは確かに簡単だが、マーシャリングの
コストが高いので細切れにCの小さなコードを呼ぶような使い方はすべきでない。
そういうことがしたいなら、むしろC++/CLIを使うべきだろう。

93 名前: デフォルトの名無しさん [sage] 投稿日: 2007/10/06(土) 11:46:01

92
C#のP/InvokeとC++/CLIの暗黙のP/Invokeのマーシャリングにかかるコストは実は差がない。
違いはC++/CLIではデフォルトでSupressUnmanagedCodeSecurityAttributeが付加され、
C#は付かないということ。

以下MSドキュメントより
注: SupressUnmanagedCodeSecurityAttribute を適用すると、Interop 層からの暗黙的な UnmanagedCode アクセス許可の要求が、LinkDemand に変更されます。つまり、コードがおとり攻撃に対して脆弱になります。