2009年6月 5日 (金)

mopera U + メールアカウントの設定の注意事項

送信できない場合

送信サーバーの後に、ポート587を付加する。
例:smtp.nifty.com:587

だめな場合は、一度、アカウントを削除し、再度作成するとできるようになる場合がある。

2009年5月17日 (日)

インストレータで日本語のファイル名が使えない

ずいぶん前からの問題だが、ちっとも修正されていない。

http://support.microsoft.com/kb/915770/ja

特にショートカットに、日本語が使えないのがとても不便。また、WM6から、プログラムへのショートカットのホルダーが変更されたような気がする。

http://www.willcom-fan.com/wzero3/entries/staff/000235/

「プログラムフォルダ」は「\Windows\スタートメニュー\プログラム」を意味している。そのためここにショートカットを配置すれば、プログラムメニューにショートカットが配置されることになる。

以前はたしかにそうだったが、VS2008かWM6のせいかわからないが、「プログラムフォルダ」は、Program Filesを意味し、ここにショートカットを作ってしまう。当然、プログラムリストにででこない。

インストレータかプログラムで対処したいところだが、めんどうなのでとりあえず手動で対処することにする

  1. スタートメニューフォルダーに英語名で、ショートカットを作成。
  2. プログラムフォルダに英語名で、ショートカットを作成。ただしWM6では無駄
  3. インストールした後、ファルエクスプローラで、Windows\スタートメニューのフォルダを開き、目的のショートカットを漢字にリネームする
  4. Windows\スタートメニュー\プログラムのフォルダに移動させる

2009年5月14日 (木)

C# IDE Mobile

C# IDE Mobile」という、Windows Mobile上でもC#のアプリ作成ができるフリーの開発環境が、あるらしい。

Visual Studio Proが高くて買えない人には、いいかも。

2009年5月 6日 (水)

データベーススピード比較

簡単なデータベースを作成して、Insertコマンド(100件)の実行スピードを比較してみた。

  • SQL Server Express (*.mdf) 394ms
  • SQL Server Compact (*.sdf) 19475ms
  • Access (*.mdb) 3663ms

結果は、かなりの差があることが判明した。SQL Server Expressのインストールが面倒なので、SQL Server Compactで代用できないかと思ったのだが、とてもムリであることが判明した。

2009年3月27日 (金)

Vista のSMTPサービス

XpまではSMTPサービスがあったが、Vistaではなくなったらしい。

IISマネージャーに、STMP電子メールの設定がある。こいつを使うと別なSMTPサーバーに飛ばすか、ピックアップディレクトリにファイルとして保存できる。

デバッグなら、ピックアップディレクトリのほうが、すぐ内容を確認できるので便利。

hostsファイルが書き換わる問題

ASP.NETの開発サーバーでページを表示させようとしたら、できなかった。

localhost ではなく 127.0.0.1を指定すると表示できる。検索したら、2009/3/10にアップデートに問題があったらしい。

hosts を書き換えて、再起動したら、表示できるようになった。.

http://d.hatena.ne.jp/yaneurao/20090310
http://www.h-online.com/security/Windows-Defender-False-alarm-triggered-by-hosts-file--/news/112814

2009年1月11日 (日)

mdfでのSQL CLRの有効切り替え

「.NET Framework でのユーザー コードの実行は無効です。"clr enabled" 構成オプションを有効にしてください。」

mdfで、このエラーがでる場合は、VS2008のサーバーエクスプロラで、対象のmdfを開き、新しいクエリで、下記を実行する。

sp_configure 'clr enabled', 1
RECONFIGURE

http://www.atmarkit.co.jp/fdotnet/vs2005db/vs2005db_09/vs2005db_09_02.html

「SQL Serverセキュリティ構成」のCLR有効とは、別なので注意が必要。

○アセンブリ名を削除するには

新しいクエリで、下記を実行する。

DROP ASSEMBLY <アセンブリ名>

2009年1月 9日 (金)

mdfが他のプロセスで使用中になってしまったときの対処

リブートしてもダメなときは、SQL Server Managment Studio で、そのファイルがアタッチされていたら、タスク-デタッチする。

どうにもならなくなったら、データベースを新規作成で新たにつくる。

オリジナルライブラリを、IntelliSenseに対応させる

自分で作成した、クラスライブラリを使うとき、呼び出し側でIntelliSenseや、引数のコメントがでると便利である。

VS2005には、この機能が備わっており、プロジェクトのプロパティ-ビルドの出力項目で、XMLドキュメントファイルにチェックを入れる。

http://dobon.net/vb/dotnet/programing/xmldocument.html

だだし、コメントがない関数等でワーニングがでるようになるので、デバッグが済んだ時点で、出力されるようにしないと、うっとうしい。

VB用DLLをC#から呼び出す

VB6向けに作られたDLLを呼び出すのは、通常のDLL呼び出しと同じ。

ただし、固定長文字列を含む構造体を引数とするDLLの場合はオプションの指定が必要。

    [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
    public struct AuthMemberInfo
    {
        /// <summary>ユーザーID</summary>
        [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 9)]
       
public string userID;

        /// <summary>ユーザー名</summary>
       [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
        public string userName;
    }

fixed char vendor[31]等でも可能だが..

  • unsafeだらけになってしまう
  • 文字列とchar配列の変換が必要
  • 構造体のポインタの記述が必要

など、ひどく面倒になる。

また、文字配列のサイズに注意する。たとえば、VBで30文字の場合、C#では31文字必要になる場合がある。うまくいかない場合は、+1してやってみること。

«SqlServerCeとClickOnce