サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
パリ五輪
code-lab.blog.so-net.ne.jp
コマンドラインからデバイスドライバのインストール/アンインストールを行うには二つの方法があります。ひとつはrundll32を呼び出してINFファイルのDefaultInstallセクションを実行する方法。もうひとつはマイクロソフトが無償で配布しているコマンドラインからデバイスマネージャ相当の事を行うツール(devcon)を使用する方法です。 rundll32を使用する インストール: rundll32.exe syssetup,SetupInfObjectInstallAction DefaultInstall 128 sample.inf アンインストール: rundll32.exe syssetup,SetupInfObjectInstallAction DefaultUninstall 128 sample.inf rundll32.exeのコマンドラインパラメータに上記のよう
Windows VISTA以降のWindowsではセッション0分離の機能により、サービスから直接UIを表示することができなくなりました。Microsoftの互換性情報では代替手段として「ユーザーログイン時に常駐プロセスを起動しサービスと通信を行う。」「WTSSendMessage関数を使用してメッセージボックス相当の表示を行う。」「CreateProcessAsUserを使用してログインユーザー権限でアプリケーションを起動する。」の三つの方法が提示されています。ここでは最後の「CreateProcessAsUserを使用してログインユーザー権限でアプリケーションを起動する。」サンプルを提示します。 サービスから画面を表示するにはRemote Desktop Services APIを使用します。 WTSGetActiveConsoleSessionId関数で物理コンソールのセッションI
VisualC++に付属しているCランタイムライブラリにはヒープメモリのリークを検出する機能が備わっています。その機能をもちいて、メモリリーク個所を特定してみましょう。 メモリリークの検出 メモリリークを検出するには_CrtDumpMemoryLeaksを呼び出します。このとき未解放のメモリがあればデバッグコンソールにそのメモリアドレスと先頭16バイトのダンプが表示されます。 Dumping objects -> {108} normal block at 0x00143FC0, 256 bytes long. Data: 48 65 6C 6C 6F 20 57 6F 72 6C 64 00 CD CD CD CD Object dump complete. この中の{}で囲まれた数字は、起動後に何番目に確保さえたメモリかを示します。 メモリリーク個所の特定 メモリリー
リリース後のアプリケーションにおいて不正なメモリアクセスなどのエラーが起こった場合には、マップファイルを用いてデバッグをおこないます。 マップファイルの作成 プロジェクトプロパティを開き、リンカのデバッグにあるマップファイルの生成を「はい」にしてください。これでビルド時にマップファイルが生成されます。 実行位置の特定 Windows Vistaでアプリケーション実行中に下のような画面が表示されます。詳細をクリックして詳しい情報を参照してください。 下記は実際に発生したエラーの詳細です。例外コードは例外の種類を表します。C00000005はWrite Protection Errorです。次の例外オフセットが例外が発生したコードの場所を示しています。マップファイルと照らし合わせて見てみます。 問題の署名: 問題イベント名: APPCRASH アプリケーション名: crashT
このページを最初にブックマークしてみませんか?
『code lab.:So-net blog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く