2005-11-01から1ヶ月間の記事一覧

System.Media.SoundPlayer

NET2.0ではSoundPlayerクラスが用意され、簡単にサウンドが使えるようになっています。試しにoggを演奏させるプログラムを書いてみました。 #include <windows.h> #include <Mmreg.h> #include <stdio.h> #include <math.h> #include <vorbis/codec.h> #include <vorbis/vorbisfile.h> #using <System.dll> using namespace System; using namespace </system.dll></vorbis/vorbisfile.h></vorbis/codec.h></math.h></stdio.h></mmreg.h></windows.h>…

SpeechRecognitionEngine

昨日は音声合成だったので、今度は音声認識を試してみました。マイクからの入力を認識してコンソールに出力します。「quit」と言えば終了です。 using System; using System.Speech.Recognition; using System.Speech.Synthesis; static class Program { sta…

11/28

・http://www.mybadhairday.com/cppcliinstall.html .NET Reflector用のC++/CLIサポートAdd-in。・http://jira.codehaus.org/secure/ReleaseNote.jspa?version=12052&styleName=Text&projectId=10671&Create=Create Boo 0.7.5リリース。Extension Methods(C#…

System.Speech.Synthesis

思いつきでWinFXのSpeech系クラスを弄ってみました。まず、Speech SDK 5.1が必要なのでダウンロードしておきます。で、 using System; using System.Globalization; using System.Speech.Synthesis; static class Program { static void Main () { SpeechSyn…

11/27

・http://www.grimes.demon.co.uk/dotnet/vistaAndDotnet.htm Windows VistaでManaged Codeは重要な役割を果たすことはないという話。この頃が懐かしいなぁ。(^^;

アパートの続き

COM

同時に同じアパートで実行されるスレッドは1つだけである。 素直に考えればこの説明はSTAだけのことを言っているんだろうなぁ。でないと、MTAの時にロックが云々という話にならないだろうし。ところで、WinFormsなアプリ書くときに、Mainに [STAThread] sta…

Unmanaged Assemblies

C++

昨日のVisual C++ 2005(というかコンパイラ、リンカ)の変更についてフォロー。足し算、引き算をするライブラリ(math.cpp)を作ってみます。 #include <stdio.h> extern "C" __declspec (dllexport) void add (int x, int y) { printf ("%d + %d = %d\n", x, y, x + y);</stdio.h>…

11/26

・IronPython: Python on the .NET Framework デモが面白いです。IronPythonの可能性を感じさせます。 ・オラクルの無償データベース・ソフト、日本でも来年提供へ | 日経 xTECH(クロステック) 仕事ではOracleなので、家で遊ぶおもちゃにイイかも。(^^; ・…

アパート

COM

Essential COMの5章192pより、 同時に同じアパートで実行されるスレッドは1つだけである。 ふむふむ。 MTAでは複数のスレッドを同時実行出来るが、STAで実行出来るスレッドは1つだけである。 ふむ・・・え? アパートで同時実行出来るスレッドは1つだけじ…

Singletonパターン

C#

定石としては、 using System; public sealed class Singleton { static readonly Singleton instance = new Singleton (); Singleton () { Console.WriteLine ("Constructor."); } public static Singleton Instance { get { return instance; } } } class …

C++でCOMサーバ

COM

テキストエディタでCOMサーバを作って色々苦労したので、メモなどを残してみます。多分、間違っているところもあると思いますが、何かの参考になれば。まず、必要なインタフェース分だけGUIDを作成します。 $ guidgen IDLの作成(hello.idl) [object, uuid(51…

.NET2.0での慣用句

Learn to Develop with Microsoft Developer Network | MSDN 目立たないですが、既存のクラスライブラリにも色々手が入っています。中には習慣として手が勝手に動くような処理(ファイルの読み込みなど)に関するものもあるので、よく知っているクラスでもクラ…

11/23

・http://www.windowsforms.net/Default.aspx?tabindex=4&tabid=49 WinForms V2 Demo Appが面白そう。Outlook 2003モドキやら、MSN Messengerモドキのサンプルがあります。

COMの勉強

CLRホスティングに手を出すと、どーしてもCOMは避けられないようなので、諦めてCOMを勉強し直すことに。昔は専門書コレクタだったので読みもしないのに色々資料だけは揃ってたりします。(^^; で、がさごそと本棚からInside OLE (マイクロソフトプレスシリー…

はじめてのMDbgその2

プロセス列挙だけでは寂しいので、もーちょっとだけ。こんなサンプルをデバッグ(?)してみる。 using System; class Foo { } class Bar { } static class Program { static void Main () { object foo = new Foo (); try { Bar bar = (Bar)foo; } catch (E…

Visual C# 2005 Express

遅ればせながらインスコしてみました。・・・が、何故かテキストエディタの入力が異常。カーソルキーもタブもバックスペースも受け付けてくれません。β2は動作したんだけどなぁ・・・(追記) 解決 C:\Documents and Settings\\Application Data\Microsoft\VCS…

11/20

・IronPython 0.9.5 ・November 2005 – Mike Stall's .NET Debugging Blog VB.NETでMDbgを使ったサンプル。

はじめてのMDbg

Win32プロセスを列挙するにはProcess.GetProcessesを使いますが、Managedプロセスのみ(ついでにAppDomainも)列挙するにはどうすれば良いでしょうか?そんなときは、MDbgを使うと便利です。MDbgを使うには、 "%NetSamplePath%\bin\MDbgCore.dll" # デフォルト…

はじめてのデフォルトCLRホストその4

タイトルと内容があっていないので、変更しました。(^^;前回、何気なく 互換性のあるアップグレード(.NET1.0 -> 1.1など)の場合は と書きましたが、互換性のあるアップグレードとは何を指しているのでしょうか? Breaking Changes in .NET Framework 2.0とか…

はじめてのCLRホスティングその3

昨日に引き続き、更に脱線。CorBindToRuntimeExに渡されるバージョンは、基本的にはビルドした環境のバージョンに引っ張られます。では、アセンブリからCLRのバージョンを取得してみましょう。 #include <windows.h> #include <stdio.h> // ファイル読み込み用ヘルパークラス cla</stdio.h></windows.h>…

はじめてのCLRホスティングその2

今回はちょっと寄り道。 HRESULT hr = CorBindToRuntimeEx ( L"v2.0.50727", L"wks", STARTUP_CONCURRENT_GC, CLSID_CorRuntimeHost, IID_ICorRuntimeHost, (PVOID*)&pCLR); CorBindToRuntimeExでCLRのバージョンを指定しています。CLRは同一プロセス(Win32…

11/15

・http://msdn.microsoft.com/netframework/programming/breakingchanges/ なんかSeverityという単語がやけに目につく。彼ら(.NET1.0/1.1)には過酷な日々を

はじめてのCLRホスティング

CLRホスティングAPIを使ったことが無かったので実験。 #include <assert.h> #include <stdio.h> #include <mscoree.h> #import <mscorlib.tlb> using namespace mscorlib; int main (int argc, char* argv[]) { ICorRuntimeHost* pCLR = NULL; HRESULT hr = CorBindToRuntimeEx ( L"v2.0.50727", L"wks", </mscorlib.tlb></mscoree.h></stdio.h></assert.h>…

DynamicMethodのメモ

CLR Method Dispatch Internals: From Static to Dynamicのデモコードの写し。コード確認するのにデモ見るのはしんどいのでメモっておきます。(^^; using System; using System.Reflection; using System.Reflection.Emit; delegate object DynamicMethodDel…

・An Overview of the Singularity Project C#(正確にはC#から派生したSpec#から更に派生したSing#)で書かれたOS、Singularityのテクニカルレポート。Singularity: A research OS written in C# | Going Deep | Channel 9でも話題になりましたね。

インデントベースの文法

以前、紹介したときから、ちょっと変更されたみたい。 #pragma indent using System set namespace Indent.Sample class Foo bar : string public this (str : string) bar = str public Say () : void Console.WriteLine (bar) module Program [STAThread] …

11/5

・Nemerle 0.9.1 is out インデントベースの文法対応とバグフィックスがメイン。 ・CLR Method Dispatch Internals: From Static to Dynamic メソッド呼び出しの内部的な動作について。と言いつつ、個人的にはデモ中のデバッガの使い方に興味が。(^^; イミデ…

・戯言シリーズ (戯言シリーズの完結にあたって西尾維新さんからコメント & 各種イベントより) あ、そろそろネコソギラジカル下が出るのか。これで完結。

11/3

・Breaking Changes in Visual Studio and the .NET Framework document .NET2.0での変更点。

関数型言語への道

Haskellのチュートリアルをやっているのですが理解度チェックのため、練習問題をHaskell、Nemerle両方で解きながら進めてます。 using System; variant List [T] { | Nil | Cons { value : T ; next : List [T]; } } def show (l) { def iter (_) { | List.N…