[Ttssh2-commit] [9290] MinGWドキュメントでTLS + LoadLibrary() で問題あるOSが誤っていたので修正

Back to archive index
scmno****@osdn***** scmno****@osdn*****
2021年 5月 27日 (木) 23:15:44 JST


Revision: 9290
          https://osdn.net/projects/ttssh2/scm/svn/commits/9290
Author:   zmatsuo
Date:     2021-05-27 23:15:44 +0900 (Thu, 27 May 2021)
Log Message:
-----------
MinGWドキュメントでTLS + LoadLibrary() で問題あるOSが誤っていたので修正

- Visual Studio の printf()系の C99準拠について追記

Modified Paths:
--------------
    trunk/teraterm/libmingw/README.md
    trunk/teraterm/libmingw/README_w95.md

-------------- next part --------------
Modified: trunk/teraterm/libmingw/README.md
===================================================================
--- trunk/teraterm/libmingw/README.md	2021-05-27 14:15:25 UTC (rev 9289)
+++ trunk/teraterm/libmingw/README.md	2021-05-27 14:15:44 UTC (rev 9290)
@@ -20,12 +20,14 @@
   - "%zd" など新しいフォーマット指定子
     - 古い Visual Studio(msvcrt.dll) の printf()系ではサポートしていない
   - L"%s" と "%s" の動作の違い
-    - msvcrtでは %s は char, L"%s" は wchar_t
+    - msvcrtでは "%s" は char, L"%s" は wchar_t を引数とする
+    - MinGWでは "%s", L"%s" とも char, "%ls" は wchar_t を引数とする
 - 特に指定していないと MinGW の printf()系(stdio)を使用する
 - このため Visual Studio と動作が異なってしまう
 - `__USE_MINGW_ANSI_STDIO` マクロので切り替えることができる
-  - 1 のとき mingw の stdio (デフォルト)
+  - 1 のとき mingw の stdio (mingwのデフォルト)
   - 0 のとき msvcrt
 - 参考URL
   - [printf の %lf について](https://ja.stackoverflow.com/questions/34013/printf-%E3%81%AE-lf-%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6)
-
+- Visual Studio 2015 以降
+  - `_CRT_STDIO_ISO_WIDE_SPECIFIERS` を使用すると C99 に準拠するらしい

Modified: trunk/teraterm/libmingw/README_w95.md
===================================================================
--- trunk/teraterm/libmingw/README_w95.md	2021-05-27 14:15:25 UTC (rev 9289)
+++ trunk/teraterm/libmingw/README_w95.md	2021-05-27 14:15:44 UTC (rev 9290)
@@ -63,7 +63,7 @@
   - GCC では __thread
 - LoadLibrary()で使用するdll(Tera Termの場合、プラグイン)では利用で問題があった
   - exe と同時にロードするdllはok
-  - Windows 7以降からok
+  - Windows Vista / Server 2008 以降からok、それ以前では問題がある
   - [スレッド固有記憶領域を持つ DLLを LoadLibrary すると異常動作する問題](http://seclan.dll.jp/dtdiary/2011/dt20110818.htm)
 - Windowsではexe(PE32)内.tlsセクションを利用して、スレッドローカル変数の処理を行う
   - スレッドコールバックテーブル


Ttssh2-commit メーリングリストの案内
Back to archive index