C++

Windowsドライバ(っというか、カーネルモードアプリケーション?)を開発してみる……ただし実用には問題あり(2)

C++

昨日作ったドライバを、使用する側のプログラムを作ってみます(・∀・) 概略としては、Service Control Manager(SCM)でドライバを開始してデバイスをオープン、DeviceIoControl()を呼び出して作成したドライバが意図した応答を返すかどうかを確認するものにな…

Windowsドライバ(っというか、カーネルモードアプリケーション?)を開発してみる……ただし実用には問題あり(1)

C++

前にちょっと実験をしていて、ドライバを作りたくなったのでやってみたテスト(・∀・) ちなみに、最初に言っておくと、僕チンの日常的な作業環境はVista x64(・ω・) っということで、署名の問題で実用的なモノを作るのは諦めてしまったのだけど、せっかくなの…

カーネルメモリ空間の向こう側

C++

ちょっとやりたいことがあったので、NtQueryObject( ..., ObjectNameInformation, ... )を使った実験をしていたんですが(・∀・) コレ、ある種のハンドルに対して実行すると、デッドロックみたいになりますね(´д`;) 対応策は、無いのかな? http://d.hatena.…

何もかも懐かしい

Windowsのクライアントアプリケーションに関して言えば完全にC++からC#へ移行してしまい、ここ最近はWebな仕事*1の割合の方が多いので、今後C++を使うことがどれだけあるのか怪しい自分ですが、とりあえずBoostと聞いては買っておけというわけで、購入(・∀・…

個人的にVistaが使いにくいと思うところと、その対策

C++

遅まきながら、最近になってやっと本格的に開発環境をVista/Windows Server 2008(64bit)に移行したんですが(*´∀`*) Vistaは使いにくいなんてよく言いますが、マシンスペック的な事に関して言えば、Core 2 Quadに64bitを有効活用したメモリを乗せれば特に重…

アクセスポイント一覧と信号強度を取得する

C++

昔の日記にコメントがあったので、それに関連して、Windowsでアクセスポイントの一覧と信号強度を取得する方法について書いてみたり(・∀・) これらの情報の取得にはDeviceIoControl()を使うんですが、そこに渡すハンドルをオープンするためにネットワークアダ…

とりあえずビルドしておくWM 6.0

Windows Mobile 6 日本語版正式発表ということで、C++なライブラリもWM 6.0のSDKでビルドしておく(・∀・) とりあえずWM 5.0時代から修正は無いというか、潜在的なバグに気がついたのでそこだけ修正。 最近はあまりC++も使っていないのだけれど(´ω`)

Widcomm Bluetooth stack

久々にCEネタ(・∀・)Widcomm Bluetooth stackのSDKがタダ使えるようですね。 http://www.broadcom.com/products/bluetooth_sdk.php CE用だけじゃなくてPC用もありますね。 使い方はBtSdkCE.hをincludeして、BtSdkCE30.lib/BtSdkCE50.libをリンク。 CBtIfクラス…

地方での求人とかeUMLとか

転職について調べたりした中で、知ったり聞いたりしたことの中からのお話です(・∀・) 地方だと機械メーカ系の会社なんかで、組み込み・ファーム制御みたいな求人はわりとあるんですが。 これは山梨だけではなくて、北関東の方なんかでも同じようで。 後、東海…

オモチャもビルド WM5.0編

ついでなので、もう少しPDAプログラミングのネタを続けてみたり(・∀・) 昔作ったオモチャなんかもVisual Studio 2005でビルドしてみました。 でもW-ZERO3とかはないんで、相変わらずエミュレータ上で動かしただけですが(´・ω・`) で、オモチャの内容はよくある…

CEで全画面表示 WM5.0編 (2)

昨日は久しぶりにPDAプログラミングのネタを書いてみたんですが、せっかくなので、今日も続けてみます(・∀・) 昨日の事があったので、昔作った全画面表示のサンプルアプリケーションをVisual Studio 2005環境に移行して、Windows Mobile 5.0のエミュレータで動…

CEで全画面表示 WM5.0編

[id:machi_pon:20060619:1150717551]にPDAでMFCのCDialogを使って全画面表示のやり方を書いていますけど。 [id:pieq:20060810:1155189691]によると、Windows Mobile 5.0(W-ZERO3とか)だと駄目なようで。 Windows Mobile 5.0時代になってから殆どPDAプログラ…

Shared Source Microsoft Device Emulator 1.0

Microsoft Device Emulator 1.0のソースコードがShared Sourceで公開されていますね(・∀・) http://www.microsoft.com/downloads/details.aspx?familyid=faa8c81d-7316-4461-a0ed-6c95b261ddcd&displaylang=en ドキュメントに書いてありますが、ビルドするには…

無線LAN強度の取得

CEネタのついでに無線LAN強度の取得。 CE4.0以降(NDIS5.1対応)ならNIDS経由でいけます。 まずはinclude #include <winioctl.h> #include <ntddndis.h> #include <nuiouser.h>NDISオープン HANDLE hNdis = ::CreateFile( NDISUIO_DEVICE_NAME, GENERIC_ALL, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUT</nuiouser.h></ntddndis.h></winioctl.h>…

CEで全画面表示(3)

FactoryとRTTIもどきを実装するために、以下のようなマクロを用意しています。 // ファクトリーベース class CPageFactoryBase { public: virtual CAbstractPage* CreateInstance(CWnd* pParent) = 0; }; // ファクトリーテンプレート template <class T> class CPage</class>…

CEで全画面表示(2)

PDAで全画面表示ができるようになったのは良いとして、業務アプリケーションでは複数の画面を遷移する作りが必要になります。 ここで各画面をトップレベルのウインドウとして作成すると、画面表示を切り替えるために最大化処理が走ったり、ちらつきが発生し…

CEで全画面表示(1)

専用アプリケーションを作成するネタの続きです(・∀・) Windows MobileなPDAで全画面表示を行う場合、SHFullScreen() APIを利用します。 ただ、SDKベースでは上手くいくのに、MFCのCDialogベースでは上手くいかないという意見を聞くことがあります(´・ω・`) MF…

CEでキーフック

ちょっとPDA(Windows CE)の事で質問を受けたので、CEプログラミングのネタです(・∀・) Windows Mobileを使って業務アプリケーションを作成する場合、専用アプリケーションにしたいという要求がよくあります。 専用アプリケーションというのは、業務アプリケー…