2007/12/07

Programing Tips

■VC++
[プロジェクトの設定] - [リンク] - [プロジェクトオプション] に "/OPT:NOWIN98" を追加する。
 効果:モジュールサイズが小さくなる

[プロジェクトの設定] - [リンク] - [アウトプット] - [ベースアドレス] に 決められたアドレスを記入する。DLL の場合のみ。
 効果:例外終了した際にどのモジュールか想定しやすい

[プロジェクトの設定] - [リンク] - [一般] - [オブジェクト/ライブラリモジュール] から
winspool.lib、odbc32.lib、odbccp32.lib を削除する。(使っていない場合)
効果:だいたい必要ないから消したほうがスッキリする程度。

[プロジェクトの設定] - [リンク] - [一般] - [MAPファイルを生成する] にチェックする。
 効果:mapファイルを保存しておけば、例外終了した際にどの関数あたりで発生しているのか想定しやすい。

■その他
DllMain で DLL_PROCESS_ATTACH の場合、DisableThreadLibraryCalls を呼ぶ。DLLの場合のみ。
 効果:スレッドを作成する度に DLL_THREAD_ATTACH が呼ばれないので処理効率良し。
    ただし、副作用があるはずなので、詳細は MSDN の DisableThreadLibraryCalls を見る

 例:

  BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
  {
   switch (dwReason)
   {
case DLL_PROCESS_ATTACH:
::DisableThreadLibraryCalls(hInstance);
break;
default:
break;
}

return TRUE;
}

1 comment:

Anonymous said...

Hello. This post is likeable, and your blog is very interesting, congratulations :-). I will add in my blogroll =). If possible gives a last there on my blog, it is about the TV de LCD, I hope you enjoy. The address is http://tv-lcd.blogspot.com. A hug.