ここのところ毎回チェックしている,アーキテクトセンタのコラムが更新されています。
アーキテクトへの道
http://www.microsoft.com/japan/msdn/architecture/way/default.aspx
このくらいのコラムが書けるような Workshop を開催したいですね。
API呼び出しの引数として文字列(String型変数)を渡す場合。
渡す文字列値に2バイト文字が混じっていると,引き渡した変数の値の後方の何文字かが切り落とされてしまう。という現象が発生しています。
API GetPrivateProfileStringのlpFileNameの例
Result=GetPrivateProfileString(section, _
key, _
default, _
valuebuffer, _
length, _
iniFileString)
とした場合に,API宣言がByValとしていても
iniFileStringに2バイト文字を含むパスが設定されている場合,API呼出し後のiniFileStringの値は途中で途切れたものに変更されてしまいます。
つまり,変数に"c:\一時ファイル\temp.ini"などと渡すと
API呼出し後に"C:\一時ファイル\t"などと後半部分の一部がきれた値に書き換えられてしまいます。
これは,VB の String がAPIに渡されるために,起こっているようです。
とりあえず,引き渡す文字列をそのまま渡さずに,ToCharArrayメソッドを介してコピー渡しをすると回避できます。
lpFileName.ToCharArrayなどとして渡します。
また,もっと根本的な解決として,
引数を渡す際に()でくくって渡すと,明示的に値渡しをすることができます。
Result=GetPrivateProfileString(section, _
key, _
default, _
valuebuffer, _
length, _
(iniFileString))
と呼び出すことで,変数が書き換えられてしまうことを防止できます。
これらは VB 側の変数の値を書き換えられないようにしているだけです。
さて,ここで C について考えてみましょう。
C の文字列は終端に Null 文字をつけることによって文字列の終端を認識していますよね。
じゃー,つけてあげればいいのでは?
iniFileString = String.Concat(iniFileString,ControlChars.NullChar)
これできれいに文字切れが起こらなくなります。
どれでも回避できますが,みなさんどれがお好みですか?
SSIS ユーザーとしてはチェックせずにはいられない,
[Windows Workflow Foundation](WWF)について,何回かに別けて連載したいと思います。
これは,かなりアツイ開発プラットフォームになると思います。
[WinFX] についてのFAQ
http://blogs.timberlandchapel.com/blogs/timberlandchapel/articles/424.aspx
[Windows Workflow Foundation] についてのFAQ
執筆中...
[Windows Workflow Foundation] を体験してみよう
執筆中...
MVP の河端さんやディベロッパー製品開発統括部でも,[PDC2005] 関連で紹介されています。
・河端善博の.TEXT でウェブログ
PDC05 帰国後に読んでいる本は Windows Workflow Foundation
・ディベロッパー製品開発統括部 Blog
Windows Workflow Foundation とは ?
MSDN サブスクリプションの体系ってどう変わるの?
MSKK デベロッパービジネス本部の北川 裕康さんが非常にわかりやすく書かれています。
トラックバックさせていただいて,
多くの皆さんに MSDN サブスクリプションの変化について知ってもらいましょう。
MSDN サブスクリプションをお持ちの方は,チェックチェック!
以下トラックバックです。
MSDNサブスクリプションの移行~その1~
http://blogs.msdn.com/hiroyask/archive/2005/08/29/457382.aspx
MSDNサブスクリプションの移行~その2~
http://blogs.msdn.com/hiroyask/archive/2005/08/31/458324.aspx
MSDNサブスクリプションの移行~その3~
http://blogs.msdn.com/hiroyask/archive/2005/09/01/458986.aspx
MSDNサブスクリプションの移行~その4~
http://blogs.msdn.com/hiroyask/archive/2005/09/05/460987.aspx
そして,
公式にはプレスリリースを参照しましょう。
Microsoft(R) Visual Studio(R) 2005」の価格および新製品発表会の日程を発表
http://www.microsoft.com/japan/presspass/detail.aspx?newsid=2404
TLC.com の小規模お勉強会 TLC.com Workshop を開催いたします。
TLC.com Worpshop 第1回
http://blogs.timberlandchapel.com/blogs/workshop/archive/2005/09/02/370.aspx
みなさん,どうぞ参加ください。
よろしくお願いいたします。
今回は,開発しやすい,迅速に開発を行うための VB.NET 開発環境を構築する。
のお話です。
アテンディーの皆様には,コンテンツのダウンロードが可能になりました。
Microsfot には,各製品・テクノロジに対応した Newsgroup が存在します。
これらは公式コミュニティとして Microsoft により運営されています。
Japan ニュースグループホーム(日本語)
http://www.microsoft.com/japan/communities/newsgroups/default.mspx
Japan ニュースグループ ブラウザーホーム(日本語)
http://www.microsoft.com/japan/communities/newsgroups/browser/default.mspx
Newsgroups Home(英語)
http://www.microsoft.com/communities/newsgroups/default.mspx
このニュースグループですが,
Web ブラウザから簡単に閲覧,投稿を行うことができます。
投稿に関する評価制度も導入されていて,なかなかに使いやすくなっています。
また,英語のニュースグループはやはり情報が早いので,
海外の掲示板を探すのも,投稿するのもちょっと。。。という方でも情報を仕入れるというのにはよいのではないでしょうか?
ぜひ,有効に活用してください。
TLC も 「Windows Server System - SQL Server」 で少しだけ回答をしています。
TLC.com Community Stage 障害から復旧しました。
ご利用の皆様にはご迷惑をおかけいたしました。
9/17 に Workshop も開催されますので,どうぞよろしくお願いいたします。