2012年03月08日

勘違いから見つけたもの?

疲れのせいか、勘違いしてテストしてしまったなかで

本当は Native C/C++ で書くつもりが

Visual Studio 2008 の CLR でテストコードを間違えて書いてしまったが

 意外なことに気が付いた。

  CLRの方がメモリを食う?

   安全のためにメモリを消費するというのが正しいのか?


     エラーを出してまでの安全とは?


       Native だとすんなり行くのだが?


Windows XP でテストしていたせいか? 2000スレッドが限界?

続きを読む
posted by zengaichi at 23:54| Comment(0) | TrackBack(0) | .NET Framework | 更新情報をチェックする

2011年11月27日

backgroundWorkerとlock

backgroundWorkerはダイアログ(フォーム)を表示中にバックグラウンドでワーカスレッドとして走るのだが、lock(あるいはMonitor.Enter、Monitor.Exit)のシグナルもブロックされている模様。それでFormとbackgroundWorker間のLock用オブジェクトが使えない。確かにイベント関連はブロックしているとは記述はあるけれども。

デリゲートで巧くハンドリングする必要があるようで。

backgroundWorkerからメッセージボックスを呼ぶとシステムとして動作するのでタスクバーにアイコンが現れる。回避方法にはデリゲートとしてフォームに実装し、backgroundWorkerからInvokeでデリゲートをコールする。
posted by zengaichi at 20:39| Comment(0) | TrackBack(0) | .NET Framework | 更新情報をチェックする

2011年05月08日

CSharpのインターフェイス・トリック

某本を眺めていると気になることが

CSharp のインタフェースの正しい実装とは?


続きを読む
posted by zengaichi at 11:06| Comment(3) | TrackBack(1) | .NET Framework | 更新情報をチェックする

2009年10月12日

Visual Studio 2008の意外なもの

コード分析を実行すると

色々ワーニングを出してくれる

  それもプログラミングスタイルまで

 知らなかった命名則まで
posted by zengaichi at 19:10| Comment(0) | TrackBack(0) | .NET Framework | 更新情報をチェックする

2009年09月23日

VB.NETの割り算と商

割り算は / 商は \

 整数演算のはずが / でも小数点が発生し、代入のときに四捨五入されてしまう。


Dim a As Integer = 124
Dim b As Integer = a / 8

bは16になる


Dim a As Integer = 124
Dim b As Integer = a \ 8

bは15となる

posted by zengaichi at 17:52| Comment(4) | TrackBack(0) | .NET Framework | 更新情報をチェックする

2009年04月13日

パズルを作ってみる2

Sliverlight 2でパズルを作ってみる

ご指摘の修正をば

  ちなみにcloneは不要でした。

で、今回はソースだけっ
続きを読む
posted by zengaichi at 23:36| Comment(2) | TrackBack(0) | .NET Framework | 更新情報をチェックする

2009年04月11日

silverlight 2に見るセキュリティ

WPFではあまり悩まなかったが
 silverlight 2ではセキュリティが強いというよりは
  アクセス制限が色々あり
   複数のドメインに跨る場合には
    結構面倒であることが分かった

<Image Source="http://hoge.com/image/001.jpg"/>

これをローカルでデバッグしようものなら
 これを許可するローカルドメインでないhttp://hoge.comのために

AG_E_NETWORK_ERROR 4001が発生する(001.jpgが表示されない)

許可するドメインを記述するxmlファイルをルートに置く必要があるらしい

 安直にプログラムしようとすると意外な落とし穴、もとい、セキュリティがあるものだ
posted by zengaichi at 18:43| Comment(0) | TrackBack(0) | .NET Framework | 更新情報をチェックする

2009年02月07日

SOAPクライアントのメモ

Visual Studioでのメモ

自動連携してくれないので

忘れないように

続きを読む
posted by zengaichi at 16:48| .NET Framework | 更新情報をチェックする

2009年01月26日

Regexでhrefを検索

Groupsが意外と便利

 マッチングした部分を抽出してくれる



続きを読む
posted by zengaichi at 20:37| Comment(0) | TrackBack(0) | .NET Framework | 更新情報をチェックする

2008年09月17日

ASP.NET とアセンブリ(DLL)

ASP.NETの.ASPXファイルから
.NET FrameworkのDLLをロードして使う方法のメモ


index.aspxからresponse.aspxへ遷移し、
response.aspxのときに自分で作成した
ライブラリを呼び出す。

ライブラリの起き場所は、.aspxファイルがある
ディレクトリにディレクトリbinを作り、
そこに置く。





続きを読む
posted by zengaichi at 21:31| .NET Framework | 更新情報をチェックする

2008年09月15日

PeerCollaborationとWindows XP

SignInしてみるととサポートされていませんでした。


 エクセプションエラーのメッセージではサポートしてないとは気が付きません。

  たしかに記述はされていました、別のところに。

毎度ながらのローリングプレイです。
posted by zengaichi at 20:22| Comment(0) | TrackBack(0) | .NET Framework | 更新情報をチェックする

LINQ

少し読みでみると

 O/Rマッパーというよりはさらに高度な操作ができるライブラリといったところだろうか

  バージョン1だとまだ制限があるらしく完備していない模様
posted by zengaichi at 20:14| Comment(2) | TrackBack(0) | .NET Framework | 更新情報をチェックする

2008年09月08日

エッ、知らぬ間に

MS Visual Studio C/C++の文法が.NET Frameworkに対応の

 独自拡張が変更されていました。


 長いあいだ見ていなかったので気が付きませんでした。


posted by zengaichi at 23:31| Comment(0) | TrackBack(0) | .NET Framework | 更新情報をチェックする

2007年05月01日

.NET Framework 2.0の不思議なバグ

Windows 2000で

AddHandler Microsoft.Win32.SystemEvents.SessionSwitch,AddressOf ScreenLocking

を実行できないのは、さておいて、OSバージョン判定で、その文を実行しないようにブロックしたが、そうすると別のエラーとなる

コメントアウトしないといけないのだろうか?
posted by zengaichi at 21:42| .NET Framework | 更新情報をチェックする

2007年04月29日

タスクスケジュール

Vistaではセッションロックでのタスクスケジュールの登録ができるが、それ以前のOS、Windows XPではサポートされていない。

posted by zengaichi at 11:41| .NET Framework | 更新情報をチェックする

2007年04月28日

スクリーンセーバーの起動の検出と処理

プロセスのファイル名から(Process.GetProcessで取得して)拡張子.scrを調べる。

アルゴリズムは次の通り。

サンプリング時間は、スクリーンセーバの時間単位は1分なので30秒、つまり30秒間スリープ、そして起動を検知した後に処理を行い、WaitForExitで待つ。
posted by zengaichi at 15:26| .NET Framework | 更新情報をチェックする

スクリーンロックの検出

スクリーンサーバの起動を検出するために、セッションロックを代用の検討してみた。

Windows XPはターミナルサービスの機能がある(高速ユーザスイッチのために使われている)が、Windows 2000では、ターミナルサービスの機能がないために、.NET Framework 2.0で

AddHandler Microsoft.Win32.SystemEvents.SessionSwitch,AddressOf ScreenLocking

を実行するとXPでは利用できるが2Kでは利用できない(2Kではエクセプションが発生する)。
ドキュメントでは、その点を記載していないようだ。
posted by zengaichi at 15:13| .NET Framework | 更新情報をチェックする

2006年09月04日

CodeDOM -- DOMを使ったジェネレート

.NET Framework 2.0版

CodeDOMで構成し、VB.NETおよびC#のコードの生成とコンパイルおよび実行する
続きを読む
posted by zengaichi at 19:45| .NET Framework | 更新情報をチェックする

2006年08月31日

CompileInvoke

.NET Framework 2.0版

VB.NETコードをコンパイルしてメモリ上で実行する


Imports System
Imports Microsoft.VisualBasic
Imports System.CodeDom.Compiler
Imports System.Reflection
Imports System.Threading

Module Module1

Dim vbsrc As String = _
"Module Module1" & vbCrLf & _
"Sub Main()" & vbCrLf & _
"System.Console.WriteLine(""Hello VB World!"")" & vbCrLf & _
"End Sub" & vbCrLf & _
"End Module" & vbCrLf

Sub Main()

Dim vbcp As New VBCodeProvider
Dim param As New CompilerParameters
param.GenerateInMemory = True
Dim cr As CompilerResults = _
vbcp.CompileAssemblyFromSource(param, vbsrc)
Dim asm As Assembly = cr.CompiledAssembly
Dim typ As Type = asm.GetType("Module1")
Dim mi As MethodInfo = typ.GetMethod("Main")
mi.Invoke(Nothing, Nothing)

End Sub

End Module

posted by zengaichi at 21:04| .NET Framework | 更新情報をチェックする

2006年06月23日

Genric Actionの用法

.NET Framework 2.0で追加された機能

Imports System

Module Module1
 Class T
  Private mNumber As Integer

  Public ReadOnly Property Number()
   Get
    Return Me
.mNumber
   End Get
  End Property


  Public Sub New(ByVal Number As Integer)
   Me.mNumber = Number
  End Sub

 End Class

 Private Sub
Handler(ByVal obj As T)
  Console.WriteLine("Number = {0}", obj.Number)
 End Sub

 Sub
Main()
  Dim aray As T() = {New T(1), New T(2), New T(3)}
  Dim instance As New Action(Of T)(AddressOf Handler)

  Array.ForEach(aray, instance)

  Dim inst As New List(Of T)
  Dim nCnt As Integer

  For nCnt = 0 To 100
   inst.Add(New T(nCnt))
  Next

  inst.ForEach(instance)
 End Sub

End Module


posted by zengaichi at 21:04| .NET Framework | 更新情報をチェックする