SSブログ

DisableThreadLibraryCalls は CRTを静的リンクする場合は呼んではならない [プログラミング]

http://support.microsoft.com/kb/555563/ja

うほ、機械翻訳は読めん。

http://support.microsoft.com/kb/555563/en-us

を見ましょう。

このKBによると、DLLにCRTを静的リンクする場合(つまり/MTでlibcmt.libなどを使う場合)には、DisableThreadLibraryCalls を呼んではダメらしいです。

ちょっと前の「テクニック集」みたいなものには、とりあえず呼んどけみたいなことが書いてありました。私もそうしてました。

しかし昔ならいざ知らず、今はCRTは動的リンク(msvcrt80.dllを使う)のほうがよろしいので、あんまり問題にはなりそうにありませんが。

オマケ。 /MT と /MD の区別の方法。

マクロに違いが出ます。

/MT : _MT
/MD : _MT と _DLL

となるそうです。参考:http://msdn.microsoft.com/ja-jp/library/2kzt1wy3.aspx

つまり、 _DLL が define されてるときだけ DisableThreadLibraryCalls しろってことです。

_STATIC_CPPLIB なんていうアヤシゲなマクロもありますがこれはまた後ほどほじくろうと思います。
nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

Swaptimizationでmove先.._BIND_TO_CURRENT_CRT.. ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。