2008-10-13
ツールバー 32/64ビット版の共存
最近、新しく作り始めたソフトは、ほとんどが32ビット版と64ビット版をターゲットにしています。うんと、YouTube&ニコニコ動画ツールバー以降からかな。
通常のアプリなら特別なことをしなくてもコンパイラがコードを生成してくれれば問題ないんですが、プラグイン系はいろいろと問題があって…。
IE用のツールバーを作り始めに調べたときに、同一のコードから生成した32ビット版と64ビット版はなぜか共存できなくて、最初はCOMオブジェクトに割り当てたGUIDを32ビット版と64ビット版では別々にしないといけないのかと思って放置していました。
そこはやはり要望があるわけで、真面目に対応するかということで、いろいろ調べていくと、どうもGUIDは関係なく、特に意識をする必要がないようで、正常に動作していることがわかりました。
同一のGUIDでIEはどうやって、32ビット版と64ビット版を区別しているのだろうかと…。64ビット版のIEは32ビット版のツールバーやプラグインをロードしてくれません。なので、両方をインストールすると後からインストールした方が有効になってしまい、共存は無理なんだろうと思っていたんですよね。
調べてみるとリダイレクト(正しい表現なんでしょうか…)。まぁ、IE7の保護モードとかで散々苦労させられた機能なんですが、こんなところで役に立つとは思いませんでした。
64ビット版でCOM情報を登録すると、
HKEY_CLASSES_ROOT\CLSID\
の下に登録されます。まぁ、当たり前ですね。
32ビット版で登録すると、
HKEY_CLASSES_ROOT\Wow6432Node\CLSID\
の下に登録されます。つまり、Wow6432Nodeにリダイレクトされるんですよ。
しかも、アンインストール情報までリダイレクトされます。すげぇというか、下位互換性を確保するための努力というか。今回だけは自分にメリットがあったので、素直に喜んじゃいました。Good Job!!
これでWindows XP/Vistaの64ビット環境で、32/64ビット版のツールバーの共存が可能です。32ビット版IEで動作するときは、32ビット版のツールバーが、64ビット版IEで動作するときは、64ビット版のツールバーが動いてくれて、同じ用に利用できます。勿論、32/64ビット版両方をインストールする必要があります。
何もしなくてよくなったことに感謝。
Posted by darksky : 2008-10-13 11:21 Comment (0) ![]()
![]()
2008-05-18
小文字のファイル名にするな~
いらいらする問題。Visual Studio 2005でファイル名が勝手に小文字に変換されてしまいます。KBを探してみると以下のような記事が見つかりました。
■FIX: Visual Studio 2005 でデバッガが .cpp ファイルまたは .h ファイルを開くと、ファイル名にすべての文字が小文字として表示されます。
相変わらず何を説明したいのかが不明な文章です。自動翻訳機の影響?
この問題を直ちに解決するために、 Microsoft 顧客 サポート サービス に問い合わせのうえ、修正プログラムを入手します。 Microsoft 顧客 サポート サービス 電話番号とサポート料金についての情報の完全な一覧については、次のマイクロソフト Web サイトを参照してください。
ちゃんとサイトで提供してくれ~と思っていましたが、Visual Studio 2008を使うまでの我慢と思ってましたが、修正されてないです。
私の場合、短いクラスの定義と実装は.hだけで書きます。で、そのファイル内にあるメソッドにシングルステップで入り込むと、そのファイル名が小文字にされちゃいます。
例えば、ファイル名Hoge.hが、hoge.hになっちゃうんですよ。私はVisual Studio標準のエディターは使わないので、ファイラーでファイル名を探すのですが、全部小文字にされちゃうと探しにくくなるわけで。
頼むから早く修正してくれ~。
Posted by darksky : 2008-05-18 13:06 Comment (0) ![]()
![]()
2007-07-29
Windows Mobile
我が家には開発用として提供いただいたWindows Mobileマシンがあるんです。そうW-ZERO3[es]です。
![]()
私とWinodws CEとの出会いはかなり古く、カシオからWindows CE 1.0 日本語版を搭載したハンドヘルドPCが発売される前に、USで発売されていた英語版の頃です。何故か仕事で、「お前が調査しろ」ということになって、新宿のヨドバシまでカシオペア (Cassiopeia)を買いに行きました。6~7万円くらいだったかな?
まだ、ESをあまり使いこなせていないんですが、少し気合いをいれてかかろうかと…
でもって、Windows Mobile 5/6の開発環境を一式インストール完了。ちょろっとアプリを作ってエミュレータで実行。やっぱ少し癖はありますが、以前と比べると開発環境も整備されています。エミュレータ上からちゃんとインターネットも見れるし。

とりあえず何はともあれ「通信からだな」ということで、wininet APIを使ったものを作成しました。
しかし、エミュレータで実行するとInternetOpenがエラーになる。何故? ドキュメントを見てもOS Versionsには、「Windows CE 2.0 and later.」と書いてあるし…。Windows Mobile 6のエミュレータでも同じ。実機でも同じ。パラメータをいろいろ変更してみても全然ダメ。GetLastErrorで詳細を表示するしかないかと、MessageBoxを使ってエラーを表示すると、こんなエラーになっています。

Windows MobileではWininet APIは使えない? だとしたら何故コンパイルが通る? WinSockを使うしかないのか? いろいろ考えてみてもよくわかりません。
HTTP通信できないと、どうにもならない(そんなことは無い)ので、ドキュメントでも調べてみることにします。
Posted by darksky : 2007-07-29 02:42 Comment (0) ![]()
![]()
2006-11-19
Windows Vista で動作する Visual Studio
Windows Vista で動作する Visual Studio
これらの変更は Visual Studio の動作にも影響があります。そのため Visual Studio .NET 2002 と Visual Studio .NET 2003 を Windows Vista 上でサポートすることができなくなりました。
一度、VistaにVisual Studio .NET 2003をインストールしましたが、UACの影響か、まともにデバッグもできない状態でした。
これまで開発してきたコードをVS 2005にバージョンアップできない場合は、Windows XPの環境はなくせないということです。
開発はそっちの方がいいので特に問題はありませんが… まだVS 6.0も使っているし。
Virtual PCでWindows XPが快適に使えればいいのですが、まぁ無理でしょうね。
ましてや、開発なんて…
Posted by darksky : 2006-11-19 07:06 Comment (0) ![]()
![]()
2006-04-04
Open Laszlo
Open Laszloは、リッチなインターネットアプリケーションを開発・配布するプラットフォームです。
前から興味があって試したいと思っていましたが、全く触れずの状態。
サーバーサイドがJavaなのがちょっと嫌なんですが、そこは仕方なし。
XMLベースのオブジェクト指向言語LZXとJavaScriptでFlashベースのアプリケーションが構築できるなんていいじゃないですか。
Posted by darksky : 2006-04-04 12:56 Comment (0) ![]()
![]()
2006-01-20
Visual Studio 2005 Tools for Office
Visual Studio 2005 Tools for Office の新機能
私はCOM Add-inが好きだったんですけど、Office用の開発環境も.NETに移行してしまった感じですね。
VS.NET 2003よりも便利になって、まるでOfficeも開発プラットフォームの一部になったように感じます。
Visual Studio 2005のIDE中に表示されるExcelを見るとビックリですね。
一番の課題はOfficeを使ってどんなアプリを作るかということかな。
Posted by darksky : 2006-01-20 01:59 Comment (0) ![]()
![]()
2005-10-15
退屈ならAjax
最近いろいろなところで話題に上るAjaxです。
GoogleやYahoo!incも採用している技術ですが、全く興味を感じません。
なぜなんでしょうかね。やっぱりリッチではないからでしょうか。
考え方は人それぞれですね。
Posted by darksky : 2005-10-15 00:21 Comment (0) ![]()
![]()
2005-09-01
C++/CLI
マネージ・コードを記述するのにはC#かなと思っていても、なかなか受け入れられない。だからといってC++では面倒くさすぎる。C#も悪くはないんだけれども・・・
MSは過去の互換性を重要視してくれる方だけれども、「Managed Extensions for C++」ってカッコいい名称の割りには×ってところでした。
ところが、Visual C++ 2005から拡張される「C++/CLI」がかっこいい。
C#ではDllImportと面倒な宣言が必要なのに、C++/CLIではそんな必要もない。まだC#に比べると.NET Frameworkの王道ではないかもしれないけれど、やっとマネージ・コードを記述する言語としてC++が昇格したような気がする。
プラットフォーム非依存という環境ですが、ネイティブコードを簡単に呼び出せるということに魅力を感じてしまう。特に過去の資産を流用できるの大きい。
forearchはいらないけれど、__gc newってのはどうにかして欲しいです。
C++プログラマのみなさん、Visual Studio 2005では”C++/CLI“しましょう。
■Moving Your Programs from Managed Extensions for C++ to C++/CLI
http://msdn.microsoft.com/visualc/default.aspx?pull=/library/en-us/dnvs05/html/transguide.asp
■C++: .NET Framework プログラミング最良の言語
http://www.microsoft.com/japan/msdn/vs05/visualc/VS05Cplus.asp
Posted by darksky : 2005-09-01 02:30 Comment (0) ![]()
![]()
2005-08-31
AspectC++
以前、「アスペクト指向プログラミング」について書きましたが、なんとC++言語の「AspectC++」がありました。アスペクト指向を勉強するには、Javaしかないのかと思っていたので嬉しい限りです。
時間ができたときにでも使ってみたいと思います。
Posted by darksky : 2005-08-31 19:05 Comment (0) ![]()
![]()
2005-08-24
Boost C++ Libraries 1.33.0
8/10に最新版1.33.0が公開されています。
久しぶりのバージョンアップですかね。何が変わったんでしょうか。。。
Release Notesはこちらで参照できます。
秀和システム (2004/05)
売り上げランキング: 44,803
Posted by darksky : 2005-08-24 21:08 Comment (0) ![]()
![]()
2005-08-22
.NET アプリケーション・ドメインって?
最近、よく質問される「アプリケーション・ドメイン」ですが、良い記事があったのでここで紹介します。
私も.NETには乗り遅れた存在なので、あまり質問しないでください。
・@IT:連載 明解.NETテクノロジ アプリケーション・ドメイン Application Domain
この概念は重要ですよね。Windows上ですが、.NET Frameworkは堅牢、かつセキュアになったということでしょうかね。
Posted by darksky : 2005-08-22 23:58 Comment (0) ![]()
![]()
2005-08-06
WTL 7.5.5160.0
最近チェックしていなかったんですが、WTLのバージョンが7.5.5160.0になっています。
変更点を調べて早速バージョンアップするつもりです。
話は変わりますが、CHyperLinkの動きが良くわからないのは私だけでしょうか。特にツールチップと文字列一部にリンクを設定したとき。自分で修正すればいいんですけどね・・・
Posted by darksky : 2005-08-06 17:40 Comment (0) ![]()
![]()
2005-08-06
ClickOnce
Visual Studio 2005でサポートされるClickOnce はアプリケーション展開のための非常に強力なテクノロジですが、なんといってもセキュリティが重要となります。
ClickOnce セキュリティについてのドキュメント「ClickOnce 信頼された発行者の設定」が公開されているのでチェック。
Posted by darksky : 2005-08-06 17:25 Comment (0) ![]()
![]()
2005-06-29
Win32 API宣言
以前、某ブログで書いた記事の転載。便利なんだけど忘れそうなので、ここにもコピペ。
VBはプロト作成やCOMの動作確認くらいにしか使ったことがなかったので、Declare構文はあまり書いたことがありませんでした。標準でツールもあったと記憶はしていますが・・・
.NETだとお行儀よくFrameworkだけを使えばいいのかもしれませんが、Win32 APIをコールすることもあると思います。
そこで、API宣言を掲載してくれているサイトがありました。本当に助かりますね。
http://www.pinvoke.net/
@ITでも解説されていますが、なんとアドインまであるようです。
感謝。
Posted by darksky : 2005-06-29 19:55 Comment (0) ![]()
![]()
2005-06-29
STL.NET
Visual C++ 2005では、STLが .NET Frameworkで利用できるように再設計されたようです。
再設計ってのが、意味不明だけどね。
やっぱりgcnewキーワードでしたか。ということはマネージドクラスということね。
Posted by darksky : 2005-06-29 01:33 Comment (0) ![]()
![]()
前のページ 










