C


C#

ポインタのポインタを引数にした外部DLL呼び出し

C#でもメモリを確保して、ポインタを意識しながらアクセスしないとだめっぽい。

参考:http://www2u.biglobe.ne.jp/~kaduhiko/csharp_05.html

System.DllNotFoundException? が出たら・・・

  • DLLの存在を確認!(カレントディレクトリ、System32以下)
  • DLLが正常にコンパイルされているか確認!(コンパイラのバージョン、OSのバージョン等)

マルチスレッドにてオリジナル外部DLLの呼び出し

普通にスレッドでDLLを呼び出すと、以降、他のDLLを呼び出す時にNullReferenceException?が出た。user32.dllとかスレッドでDLLを呼び出す前に呼び出したDLLは正常に動作した・・・。

スレッド中のDLLの呼び出しにDelegateを使用したところ問題解決!

タイマー処理のバグ

タイマクラスは3種類存在するが、どれもバグを抱えている。(.NET Framework1.1SP1時点)

System.Timers.Timer:
http://www.atmarkit.co.jp/fdotnet/dotnettips/374timerstimer/timerstimer.html
System.Threading.Time:
http://www.atmarkit.co.jp/fdotnet/dotnettips/373threadtimer/threadtimer.html
System.Windows.Forms.Timer:
http://www.atmarkit.co.jp/fdotnet/dotnettips/372formstimer/formstimer.html

バグ内容は以下の通り。
System.Timers.Timerはサービスでは使えない:
http://support.microsoft.com/default.aspx?scid=kb;ja;842793

System.Threading.Timerはタイマ イベントが通知できないことがある:
http://support.microsoft.com/default.aspx?scid=kb;ja;900822


VS.NET2003のWEB参照を行ってもクラスが更新されない!

WEB参照を行った後は、必ずオブジェクトビューアで確認すること。 オブジェクトビューアで確認しないと、更新されない場合が多い。

フォームボタン等のXPデザイン化について

Application.EnableVisualStyles?は システムが不安定になる為、使用しないこと。 どうしても、というならマニフェストファイル使って下さい。

DLLの配置場所を変える

アプリケーションの構成ファイルに以下の記述を追加する。

<configuration>
    <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <probing privatePath="DllDirPath"/>
        </assemblyBinding>
    </runtime>
</configuration>

C#でのExceptionの宣言

どうやらC#はJavaと違ってthrowsみたいなException投げますよ宣言はないらしい。 その代わり、全てExceptionクラスを継承する必要があるみたい。

http://msdn2.microsoft.com/ja-jp/library/ms228505(vs.80).aspx

Menu

Linux

サーバ構築

Windows

Java

Program

 

最新の20件

2008-04-02 2008-03-11 2008-01-28
  • C
2008-01-21 2007-11-27 2007-09-19 2007-06-07 2007-04-11 2007-04-06 2007-03-22 2006-12-20 2006-12-05 2006-12-04 2006-10-27 2006-09-22 2006-07-03 2006-05-16