adminVC6の素のwin32プロジェクトが前提。);ここではStdAfx.cppに書いた。_CrtSetDbgFlagを呼ぶことでプログラム終了時にリークがあると以下のように出力される。complete.ここにファイル名を表示させたりもできるが今回はスルー。上記の{47}に注目してコードの先頭で以下のように書く。C++_CrtSetBreakAlloc(47);1_CrtSetBreakAlloc(47);こうするとリークするアロックのときブレークするのでコールスタックからリーク位置が分かる。newなどのCRT関連で、HeapAllocやSysAllocStringなどは対象外。5.00[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]"NoDrivesInSendToMenu"=dword:00000001上のテキストを拡張子.regで保存して実行する。Explorer.exeを再起動するか、いったんサインアウトする。admin違いはない。strlenとは違う。endl;}stringは自分でサイズを持っているのでNUL文字を含むことができる。strlenなどの関数はNULまでを数えて返すが、size()やlength()は自分で管理しているサイズを返す。adminはまったのでメモ通常はツールセットの変更で直るが、参照してるプロジェクトのツールセットも直す必要がある。それか参照プロジェクトを変える。*//MTlibcmt.libにスタティックにリンクする。Cランタイムコードは自分のEXEやDLLに埋め込まれる。DLLでは普通はこれを使わない。このオプションを指定するとコンパイラは_MTをdefineする。comment(lib...)でリンクする。/MTの場合はlibcpmt.libがリンクされる。これはスタティックライブラリで自分のEXEにCPPコードが埋め込まれる。ンポートライブラリmsvcrt.libにリンクする。実行時にmsvcr100.dllにリンクされる。DLLを作るときは通常これを使い、そうして作られたDLLを使うEXEをリンクするときも/MDを使う。すればランタイムが共有される。コンパイラは_MTと_DLLをdefineしその結果msvcprt.libがリンクされる、これはインポートライブラリで意実行時にmsvcp100.dllにリンクされる。/MDを使いCPPのリンクはスタティックで行いたいときは_STATIC_CPPLIBを定義する。同時に指定できないので、/MDになる。pureをつけるとCランタイムがリンクされない。admin詳しくは調べていない。W系の関数ならLCIDは無視すると思いたいが、マニュアルにはそう書いてないように見える。CStringはstd::wstringでも動くはず。adminCでmainの前に関数を呼び出すセクション.CRT$XIUに関数ポインタを置く。data_seg()CRTはCRT$XIAとCRT$XZに__xi_a,__xi_zを置く。セクションはリンク時にまとめてアルファベット順に並べられるので、__xi_aと__xi_zに挟まれた領域にある関数ポインタを全部呼び出すことでコンストラクタを呼び出す。C++コンパイラはコンストラクタのポインタをセクションのCRT$XCUに置く。CRTはCRT$XCAとCRT$XCZに__xc_a,__cx_zを置く。mainの後に実行するものC++のグローバルインスタンスのデストラクタはおそらくatexitの機能と同様に呼ばれる。グローバルな場合はインスタンスが置かれてる順番で登録されるが複数ファイルにまたがるときの順番は不明。staticの場合はコンストラクタが実行された後のタイミングで登録される。指定されているのもと思われる。いったタスクは普通のタスクとして登録するよりもメンテナンスとして登録しておけばタスクの衝突が起こらずコンピュータリソースがビジーになったりしないようにできる。...1234567...<MaintenanceSettings><Period>P2D</Period><Deadline>P14D</Deadline></MaintenanceSettings><AllowStartOnDemand>true</AllowStartOnDemand>...PeriodやDeadlineの書式は不明だがここでは2日に一回、14日に一回と読んでおこう。基本的に2日に一回実行し、最低でも14日に一回は実行されないとならないと読める。14日を超えたら何らかの通知がなされるものと思われる。Maintenace”から行われると思われる。この2つのタスクのアクションはカスタムハンドラー{57BFCFDD-EEE4-4DBB-A751-3CDEB169FF44}で定義されているのでここから起動された%systemroot%\system32\msched.dllがタスクを開始すると思われる。admin1、wgetを普通にインストールwgetはデフォルトでインストールされないのでインストールしておく、これがなくてもlynxで動くらしいがうまく動かなかったので事前にインストールしておく。