̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ IT ニュース&コラム 2012/2/6 通巻556号 ソフトウェアデザイン館 Sage Plaisir 21  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄                        News and Column  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄    iPhone をあらゆる家電のリモコンにするアップルの特許 2012年 1月26日、iPhone などのタッチスクリーンを持つデバイスを使って、 あらゆる家電のリモコンにするアップルの特許が、米特許商標局より公開 された。    家電のリモコンがいくつもあって、混乱している人も    多いと思うが、それを iPhone などの携帯機器が    まとめるための特許だ。 無線を使って家電を自動的    にスキャンして、操作できる家電名を一覧し、操作する    家電を選んだら、画面にリモコンのボタンを表示して    操作できるようになる。    現在、iPhone アプリとして、リモコン・アプリが    あるが、操作するためには、家電のリモコン・アプリ    をすべてのアプリから選んで起動する必要がある。    この特許によって、起動する家電のリモコン・アプリの    リストアップが近くにある家電に絞られるようになる。 ブルートゥース対応機器を接続するときも、近くにある機器の一覧から 接続する機器を選ぶことになるので、あまり新規性は無さそうな気もするが、 特許の実態はそんなもんである。 NFCタグと Evernote を連携させる Touchanote がある。NFCタグ1枚は 3ドルもするのが欠点だ。 これなら、QRコードをシールに印刷して 張ったほうが割安だ。 QRコードから Web 製品を操作するための Web ページに飛ぶか、リモコン・アプリを起動するだけで十分だ。 家電の型番をQRコードにして張り付けておくだけでいいのだが、今のところ、 そのようになっている家電は無い。 アップルの特許によってブームが 起きれば、家電に型番をQRコードが付いてくるようになるかもしれない。 もちろん、リモコン・アプリから取扱説明書をすぐに見ることも簡単だ。 参考リンク: http://www.freepatentsonline.com/y2012/0019371.html http://japan.cnet.com/news/service/35013500/ http://gigazine.net/news/20120127-nfc-evernote-touchanote/ * The others Last week watched News  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ◇ S・ジョブズ氏、B・ゲイツ氏からの手紙を枕元に。 http://japan.cnet.com/news/business/35013549/ … ゲイツ氏が MS を去った後の付き合い。 ◇ 光ディスクの時代からメモリーの時代へ。 http://av.watch.impress.co.jp/docs/series/rt/20120127_507867.html … UltraViolet との共存へ。 ◇ 美しい地球が楽しめる Google Earth 6.2 が公開。 http://news.mynavi.jp/news/2012/01/27/090/index.html … つぎはぎが目立たなくなった。 ◇ Windows XPサポート終了まで800日、MSが移行の検討を呼びかけ。 http://internet.watch.impress.co.jp/docs/news/20120130_508515.html … MS-Office 2003 も同じ日にサポート終了。 ◇ Amazon、600万台を超えるKindle Fireを販売。 http://ebook.itmedia.co.jp/ebook/articles/1202/01/news034.html … Android タブレットは、Galaxy だけじゃない。 ◇ 日本マイクロソフト、商用利用可能な Kinect for Windowsセンサーを出荷。 http://pc.watch.impress.co.jp/docs/news/20120202_509397.html … こちらは、XBOX360 に付けられないが、Kinect 対応 Windows アプリを配布可能。                      Snap Note 3 開発BLOG  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄  [ exe と DLL の間で、グローバル変数を共有するには ] DLL は、exe と同じプロセス空間にリンクすることができるので、 ポインタを使って変数を共有することができるのですが、デフォルトでは、 グローバル変数は共有していません。 sample.exe  int g_MyGlobal; sample.dll  int g_MyGlobal; 上記は、g_MyGlobal という同じ名前のグローバル変数の宣言ですが、 この2つの変数は、同じメモリの中にはありません。 たとえば、 exe の中で、g_MyGlobal = 1 して、dll の中で g_MyGlobal = 2 して、 exe の中で、g_MyGlobal に入っている値を参照したら、2 ではなく 1 になります。 しかし、同じメモリの中の変数にすることもできます。 exe のグロー バル変数に、__declspec(dllimport) を、DLL のグローバル変数に、 __declspec(dllexport) を記述します。 sample.exe  #define dll_global __declspec(dllimport)  dll_global int g_MyGlobal; sample.dll  #define dll_global __declspec(dllexport)  dll_global int g_MyGlobal; こうすれば、たとえば、exe の中で、g_MyGlobal = 1 して、dll の中で g_MyGlobal = 2 して、exe の中で、g_MyGlobal に入っている値を 参照したら、2 になります。 ただし、Visual C++ 2008 では、exe の中の関数でブレークした場合、 グローバル変数 g_MyGlobal などの値をウォッチすることができません。 「シンボルが見つかりません」というエラーになります。 おそらく、__declspec(dllimport) した、グローバル変数は、別の名前の ポインタ変数になっていて、デバッガがそれに対応していないことが 原因でしょう。 つまり __declspec(dllimport) したところで、グローバル変数のメモリ 領域は、相変わらず exe と dll で別々に用意されているのでしょう。 Windows は、まず、exe をロードした直後に exe 用のグローバル変数の メモリ領域を確保します。 この時点で、exe 用のグローバル変数の アドレスは確定します。 その直後、DLL をロードして用意される DLL 用 のグローバル変数のメモリ領域を確保します。 DLL 用のグローバル変数の アドレスはこの段階で確定します。 変数の実体は DLL 側にあります。 DLL をロードしても、exe のグローバル変数のアドレスを変えることは できません。 なぜなら、グローバル変数を参照するときは、CPU は、 グローバル・ポインタと呼ばれる CPU のレジスタの値に、コンパイル時に バイナリ・コードに埋め込まれる、グローバル・ポインタからのオフセット を足したアドレスのメモリを参照するからです。 exe の中の関数を実行 しているときは、グローバル・ポインタは、exe 用のグローバル変数の 領域を指し、DLL の中の関数を実行しているときは、グローバル・ポインタは、 DLL 用のグローバル変数の領域を指しているので、exe の中から DLL 用のグローバル変数を直接参照することはできません。 では、exe にある __declspec(dllimport) の int 型のグローバル変数 g_GlobalInt はどうなっているのかというと、実体は、int** 型 (__imp__g_GlobalInt)になっています。 これは、ソースファイルを 右クリックして [ 逆アセンブルを表示 ] すれば確認できます。 DLL をロードすると、DLL の関数のアドレスが計算されて決まるのですが、 グローバル変数も同様に変数のアドレスが計算されて決まります。 よって、グローバル変数 g_MyGlobal の値をウォッチするときは、 **(int**)__imp__g_GlobalInt と入力すれば、表示できます。 DLL のサンプル Visual C++ 2008 プロジェクトファイル:   http://www.sage-p.com/b/dll_sample.zip         ソフトウェアデザイン館 Sage Plaisir 21 について  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ホームページ  >>> http://www.sage-p.com/ メルマガ    >>> http://www.mag2.com/m/0000083983.html ブログ     >>> http://blog.livedoor.jp/sage_p/ ツイッター   >>> http://twitter.com/Ts_Neko ダウンロード  >>> http://www.sage-p.com/freesoft.htm サポート掲示板 >>> http://www.sage-p.com/kg_ban09/z6037C8.cgi 東日本大震災  >>> http://www.sage-p.com/saigai.html メール   >>> ts-neko◇sage-p.com ←◇を@に変えてください          緊急メールは件名に「うどんメール」を付けてください。  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ このメルマガの登録・解除をするときは… >>> http://www.mag2.com/m/0000083983.htm  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ News & Column are composed by T's-Neko 2012  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄