Archive for the ‘開発メモ’ Category

x64 Windows と Skype4COM と .NET

Saturday, February 21st, 2009

注意:この記事は開発者向けの内容となっています。

問題点

Skype4COM を使用して作成した .NET アプリケーションは、x64 Windows (64ビット Windows) 上で使用することができません。

原因

.NET 2.0 で作成したアプリケーションは、設定を変更せずにビルドすると Any CPU 対応のコードが生成され、これを x64 Windows で実行すると 64ビットアプリケーションとして動作します。

しかし、Skype4COM は 32ビットCOM であるため、64ビットアプリケーションから呼び出すことができません。

対策

アプリケーションを 32ビットで動作させます。

具体的には、Visual Studio のプロジェクト構成マネージャにて、プラットフォーム を x86 に設定し、ビルドを行います。

CorFlags 変換ツール を用いると、マニフェストを後から書き換えることも可能との事です。 他の方が作成されたアプリケーションが、x64 環境で動作しない場合は、試してみてはいかがでしょうか。

参考記事

以下の記事を参考にさせていただきました。 有益な情報を提供いただき、感謝いたします。

VMWare に Visual Studio のキー割り当てを乱される問題

Saturday, February 14th, 2009

【問題点】

Visual Studio 2008 で、コンパイルを行おうと F6 キーを押すと、VS が固まってしまうという問題が発生。 原因を調べてみると、VMWare に添付されている “Visual Studio Integrated Debugger” が、VS を起動するたびにキー割り当てを再設定し、F6 キーを “VMWare 上でデバッグ” に設定していました。

【環境】

  • Microsoft Windows Vista Ultimate Edition 32bit SP1
  • Microsoft Visual Studio 2008 SP1
  • VMWare Workstation 6.5.1

【注意】

VMWare のアンインストーラを使用しても、”Visual Studio Integrated Debugger” を削除することができませんでしたので、強制削除の方法を書いておきます。

【対策方法】

1. 管理者権限に昇格した状態で、 “C:\program files\VMware\VMware Workstation\Visual Studio Integrated Debugger” を削除(または名前を変更)。 ディレクトリ名は VMWare のインストール先に読み替えてください。

2. 同じく管理者権限に昇格した状態で、Visual Studio 2008 を起動する。

3. 以下のメッセージが表示されるので、”はい” を選択。

アドイン ‘VMDebugger’ の読み込みに失敗したか、または例外が発生しました。
このアドインを削除しますか?
[はい] を選択した場合、使用前にこのアドインを再インストールする必要があります。
エラー メッセージ: 指定されたモジュールが見つかりません。
エラー番号: 8007007e

4. メニューバー ツール → オプション を選択し、オプション画面左から 環境 → キーボード を選択。

5. 次の追加キーボードマップスキームを適用 から (規定) を選んで リセット をクリック。

以上の手順で元の設定に戻ります。

FileZilla 3.2.0-rc2 日本語リソース

Sunday, January 4th, 2009

FileZilla翻訳も半年くらい放置していたら、未翻訳/曖昧翻訳 項目がかなり増えていました。

とりあえず、この週末にアップデートしてプロジェクトリーダーの Timさんに送っておきました。
新機能の ブックマーク はなかなか便利ですよ。 私の場合は、特に複数ディレクトリを飛び回って作業する事が多いので重宝しています。

翻訳済みの文章も、いくつか書き直しました。 ただ、私があまり使っていない機能については、うまく訳せていない箇所が残っていると思います。

不適切な訳文がありましたら、この記事へのコメントかメールにてお知らせください。 その際には、表示される文章と、可能であればどのような操作を行ったときに表示される文章か, どのような文章が最適かを書き添えていただけると助かります。

フォームデザインビューが開けない

Sunday, May 18th, 2008

Skype chat log viewer をちょっと修正しようと、プロジェクトファイルを開いて、フォームのデザインビューを開こうとすると、

データが失なわれる可能性を防ぐため、デザイナの読み込み前に以下のエラーを解決する必要があります。
保護されているメモリに読み取りまたは書き込み操作を行おうとしました。他のメモリが壊れていることが考えられます。

はて?

警告 1 ‘AxSkype’ コントロールのウィンドウ ハンドルを取得できません。ウィンドウなしの ActiveX コントロールはサポートされていません。 D:\Projects\SChatLogViewer\SChatLogViewer\MainForm.Designer.cs 307 0

Google 先生に聞いても、これという解決策は見つからず。

Skype のコンポーネントに何かがあるのは間違いないのですが、Skype 本体を 3.8 にアップデートしたし、開発環境も VS 2008 になったし。 色々変えてしまったから、何が原因かさっぱり。

Firefox 3 のウィルススキャン機能

Sunday, May 18th, 2008

Firefox 3.0 では、ファイルダウンロード完了時に “ウィルススキャンを実行しています” という表示が出るようになりました。 私は NOD32 を入れているので、おそらくそれの機能を呼び出しているんだろうとは思っていましたが、Mozilla 運営はどこまでサポートするつもりなのでしょうかね。

ウィルススキャンソフトウェアは、有名どころだけなら数十種類ですが、企業向け製品やエンジンだけ OEM で買ってきて作った製品、フリーのソフトウェアを入れればかなりの数になると思います。 それらすべてをサポートするのは事実上不可能です。

ちょっと気になったので調べてみると、 Windows がウィルススキャンのための共通 API のようなもの “IOfficeAntiVirus” を用意しているようです。
C++アプリからウィルススキャン – デー

要するに、ウィルススキャンソフトウェアはあらかじめ Windows に対して、「検査要求があったら自分を呼び出してくれ」というような通知をしておいて、他のアプリケーションは Windows に検査要求を送るだけでよいという事のようです。 なるほど、この方法であればウィルススキャンソフトウェア側がその API に対応していれば、呼び出してもらえますね。

セキュリティ関連の話なので、Windows XP SP2 で実装されたのかと思いきや、MSDN のサイトによると Internet Explorer 5 以降と Windows 95, Windows NT 4.0 以降で使用可能とありました。
MSDN: IOfficeAntiVirus Interface

今のところ予定はありませんが、ファイルをダウンロードするようなソフトウェアを作ったら、入れてみたい機能です。