2009,08,22 Saturday
今の仕事で自分で作ったDLLをC#で使っているのもあって
色々調べてたところ、MSDNに良い記事を見つけためURLをメモしておく。
参照URL : リンク方式の使い分け
DLLを使ったことがある人なら知っているとは思うが
暗黙的なリンクと明示的なリンクの 2 種類のリンク方法がある。
個人的には暗黙的なリンクの方をよく使うが
明示的リンクは扱いが面倒なためあまり使うことがない。
ただ、趣味として使うのであれば理解していなくても構わないかもしれないが
仕事として使っているので理解する必要があるだろう。
ついでに、DLLを作る際の注意を以下にメモしておく。
・ 関数名を明示的にするにはDLL側の関数で __declspec(dllexport) を戻り値の型の前につける。(#defineしておくとラク)
=> DEFファイルが必要なくなる
・ Export部分にC++(ClassやOverload)の機能を用いて作成されたDLLは、呼び出す側はC++でしか扱えない。
・ extern "C"構文を利用して、C++の名前装飾をやめれば、他の環境(他言語等)にも対応できる。
・ 作成後はVisualStudio付属の dumpbin.exe を使ってExportの確認。(/EXPORTS)
色々調べてたところ、MSDNに良い記事を見つけためURLをメモしておく。
参照URL : リンク方式の使い分け
DLLを使ったことがある人なら知っているとは思うが
暗黙的なリンクと明示的なリンクの 2 種類のリンク方法がある。
個人的には暗黙的なリンクの方をよく使うが
明示的リンクは扱いが面倒なためあまり使うことがない。
ただ、趣味として使うのであれば理解していなくても構わないかもしれないが
仕事として使っているので理解する必要があるだろう。
ついでに、DLLを作る際の注意を以下にメモしておく。
・ 関数名を明示的にするにはDLL側の関数で __declspec(dllexport) を戻り値の型の前につける。(#defineしておくとラク)
=> DEFファイルが必要なくなる
・ Export部分にC++(ClassやOverload)の機能を用いて作成されたDLLは、呼び出す側はC++でしか扱えない。
・ extern "C"構文を利用して、C++の名前装飾をやめれば、他の環境(他言語等)にも対応できる。
・ 作成後はVisualStudio付属の dumpbin.exe を使ってExportの確認。(/EXPORTS)
2009,08,20 Thursday
仕事でC#上にてミリ秒単位での処理時間の比較を行うことがあり
その時にStopWatchClassを使ったため、以下にメモを残す
まず復習として・・・C言語(Win32API)で最も正確な処理時間は
QueryPerformanceCounter()やQueryPerformanceFrequency()によって計測する。
なお、ミリ秒単位での計測を望まない場合は、このAPIを使う必要は無いが
TimerControl等の精度が低いものによっては100msのIntervalでも誤差が生じるため
状況に応じて使い分ける必要がある。(一番精度の低いものはWM_TIMERで呼び出されるもの
参考URL : MSDN QueryPerformanceFrequency Function()
そして本題であるC#での正確な処理時間を行う場合は
System.Diagnostics内のStopWatch Classを用いる。
但し、.NET Framework 2.0以降である必要がある。
使い方としては、インスタンスを生成し、Start()とStop()でおk(笑
参考URL : MSDN Stopwatchクラス(System.Diagnostics)
簡単すぎる・・・C言語の時の苦労は何処へやら・・・
但し、相変わらずCPUの分解能のサポートは必要らしい。
出力はElapsedMillisecondsメンバ変数によって
ミリ秒単位での経過時間をlong型で取得出来るため、そのまま出力。
SampleCodeを続きに示す。
続き▽
その時にStopWatchClassを使ったため、以下にメモを残す
まず復習として・・・C言語(Win32API)で最も正確な処理時間は
QueryPerformanceCounter()やQueryPerformanceFrequency()によって計測する。
なお、ミリ秒単位での計測を望まない場合は、このAPIを使う必要は無いが
TimerControl等の精度が低いものによっては100msのIntervalでも誤差が生じるため
状況に応じて使い分ける必要がある。(一番精度の低いものはWM_TIMERで呼び出されるもの
参考URL : MSDN QueryPerformanceFrequency Function()
そして本題であるC#での正確な処理時間を行う場合は
System.Diagnostics内のStopWatch Classを用いる。
但し、.NET Framework 2.0以降である必要がある。
使い方としては、インスタンスを生成し、Start()とStop()でおk(笑
参考URL : MSDN Stopwatchクラス(System.Diagnostics)
簡単すぎる・・・C言語の時の苦労は何処へやら・・・
但し、相変わらずCPUの分解能のサポートは必要らしい。
出力はElapsedMillisecondsメンバ変数によって
ミリ秒単位での経過時間をlong型で取得出来るため、そのまま出力。
SampleCodeを続きに示す。
続き▽
2009,08,09 Sunday
とりあえず完成しましたよっと。
何だかんだ言って、良い意味で8月末まで持たなかったなー(笑
結局、モジュール名はそのまま「iControl」に決定(笑
まぁIconとControlをかけた訳ですな。
主な機能としては、Blognの記事に使われる絵文字(アイコン)を
追加・削除を行いつつ、置き換え文字列の変更が出来るというもの。
一応、追加時はファイル名や置き換え文字列の重複確認を行ったり
変更・削除時は記事に使われている場合は変更が行えない様に
必要以上の安全設計(笑)となっている。
自由に変更出来なくて鬱陶しいかと思うが
しょっちゅう変更するものでも無いし、一度設定したら最後まで
という形の方が一般的だと思うため(主観)この様なモジュールとなった。
今後追加機能として実装しても良いかと思ったところとしては
変更・削除時の記事確認を行う際に
どの記事に使われているのか列挙しても良いかとは思う。
(気持ちの余裕があれば・・・
とりあえず、Ver0.9.0として公開しておきますかね。
公開バグ修正によってリビジョン番号は上がっていくのであろう・・・orz
なお、動作確認はBlognPlus version 2.5.6で行っており
それ以前または2.6.x系での動作は保証しない。
iControl Module ver0.9.0 DOWNLOAD
[ 利用方法 ]
1.パーミッションの変更
../dat/icon.cgi [666] : 絵文字情報管理ファイル(書き換えを行うため)
/ico/[777] : 絵文字ディレクトリ
2.100個以上の絵文字に対応するために、admin.phpおよびicon.phpの改造
参考リンク:BlognPlus を使おう!::絵文字を追加したい
3.Downloadし、解凍したディレクトリの中の「iControl」ディレクトリをmoduleディレクトリ下に配置
(4).icon.cgiとicoディレクトリはバックアップしておくことをオススメする。
[ 注意事項 ]
・本モジュール利用の結果生じた損害について、一切責任を負いません。
・本モジュールの更新および修正等の責務は負いません。
・事前の予告無く、本モジュールの提供を中止する可能性があります。
「使ってるよー」とか「こんな機能欲しいな」とか
コメント頂けると良いな・・・と夢見ておきます。
何だかんだ言って、良い意味で8月末まで持たなかったなー(笑
結局、モジュール名はそのまま「iControl」に決定(笑
まぁIconとControlをかけた訳ですな。
主な機能としては、Blognの記事に使われる絵文字(アイコン)を
追加・削除を行いつつ、置き換え文字列の変更が出来るというもの。
一応、追加時はファイル名や置き換え文字列の重複確認を行ったり
変更・削除時は記事に使われている場合は変更が行えない様に
必要以上の安全設計(笑)となっている。
自由に変更出来なくて鬱陶しいかと思うが
しょっちゅう変更するものでも無いし、一度設定したら最後まで
という形の方が一般的だと思うため(主観)この様なモジュールとなった。
今後追加機能として実装しても良いかと思ったところとしては
変更・削除時の記事確認を行う際に
どの記事に使われているのか列挙しても良いかとは思う。
(気持ちの余裕があれば・・・
とりあえず、Ver0.9.0として公開しておきますかね。
公開バグ修正によってリビジョン番号は上がっていくのであろう・・・orz
なお、動作確認はBlognPlus version 2.5.6で行っており
それ以前または2.6.x系での動作は保証しない。
[ 利用方法 ]
1.パーミッションの変更
../dat/icon.cgi [666] : 絵文字情報管理ファイル(書き換えを行うため)
/ico/[777] : 絵文字ディレクトリ
2.100個以上の絵文字に対応するために、admin.phpおよびicon.phpの改造
参考リンク:BlognPlus を使おう!::絵文字を追加したい
3.Downloadし、解凍したディレクトリの中の「iControl」ディレクトリをmoduleディレクトリ下に配置
(4).icon.cgiとicoディレクトリはバックアップしておくことをオススメする。
[ 注意事項 ]
・本モジュール利用の結果生じた損害について、一切責任を負いません。
・本モジュールの更新および修正等の責務は負いません。
・事前の予告無く、本モジュールの提供を中止する可能性があります。
「使ってるよー」とか「こんな機能欲しいな」とか
コメント頂けると良いな・・・と夢見ておきます。
2009,08,07 Friday
只今、BlognPlus用モジュール「iControl(仮)」を作っています。
簡単に説明すると、BlognPlus用の記事用アイコン管理モジュールな訳ですよ。
現状としては以下の3つが済んでいる。
そして、公開までの予定としては以下3つの機能を付ける予定。
公開までの作業としては1日で出来るけど
のんびりやって、今月中に公開出来れば良いかな。
更に余裕があれば、元々ある全文検索を使って
更新や削除を行う際に、過去ログの使用状況のチェック機能を付けたいところだけど・・・
今回は先送りして、ver0.8ってところかなー(笑
簡単に説明すると、BlognPlus用の記事用アイコン管理モジュールな訳ですよ。
現状としては以下の3つが済んでいる。
- アイコンディレクトリ内の画像取得
- アイコン管理ファイル(icon.cgi)の解析
- 管理画面の表示
そして、公開までの予定としては以下3つの機能を付ける予定。
- アイコン画像のアップデート機能
- アイコンに対応する置き換え文字列の変更機能
- アイコン画像および管理ファイルからの削除機能
公開までの作業としては1日で出来るけど
のんびりやって、今月中に公開出来れば良いかな。
更に余裕があれば、元々ある全文検索を使って
更新や削除を行う際に、過去ログの使用状況のチェック機能を付けたいところだけど・・・
今回は先送りして、ver0.8ってところかなー(笑
2009,08,06 Thursday
新たにコードハイライトモジュール(GeSHi for BlognPlus)を導入したため実験してみた。
現状でもなかなか良いとは思うが、
個人的な意見としては色やフォントスタイルのカスタマイズは
管理画面で出来ると更に良いと思う。
また、CSSカスタマイズの参考もあると良いかなと・・・。
まぁ、これで汚いソースコードを楽に載せられるわけですな(笑
参考:蒼::ダウンロード::GeSHi for BlognPlus:
続き▽
現状でもなかなか良いとは思うが、
個人的な意見としては色やフォントスタイルのカスタマイズは
管理画面で出来ると更に良いと思う。
また、CSSカスタマイズの参考もあると良いかなと・・・。
まぁ、これで汚いソースコードを楽に載せられるわけですな(笑
参考:蒼::ダウンロード::GeSHi for BlognPlus:
続き▽
| BlognPlus | comments (0) |
TOP PAGE △






