[スレッド全体]

2014/2/6 (木) 22:20:56 novice  
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0
[2108] Re2:タスクトレイのプロセスが異常終了します
▼ LR4さん
> 手元の環境で上記の行を追加してビルドしてみましたが、それでも改善しませんでした。orz
> 他にも何か修正が必要なのでしょうか…


SSelLangInfo構造体のメンバ変数szDllNameを初期化してないのが問題のようです。
コンストラクタで下記のように初期化すればよさそうです。
szDllName[0] = _T('\0');

他のメンバ変数も初期化したほうがよさそうです。

2014/2/6 (木) 23:01:04 syat  
Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.107 Safari/537.36
[2110] Re3:タスクトレイのプロセスが異常終了します
▼ noviceさん
▼ LR4さん


ちょっと心当たりがあったのでパッチを作成しました。
https://sourceforge.net/p/sakura-editor/patchunicode/768/
リリース前に余計なことをしたような…

2014/2/8 (土) 00:22:44 novice  
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0
[2118] Re3:タスクトレイのプロセスが異常終了します
▼ noviceさん
> SSelLangInfo構造体のメンバ変数szDllNameを初期化してないのが問題のようです。
> コンストラクタで下記のように初期化すればよさそうです。
> szDllName[0] = _T('\0');
>
> 他のメンバ変数も初期化したほうがよさそうです。


少し調べてみました。
SSelLangInfo構造体は、POD型なので
new SSelLangInfo();
のように括弧を付けるとゼロで初期化されるようです。
new SSelLangInfo;
だとゼロで初期化されないので文字化けします。

http://msdn.microsoft.com/ja-jp/library/80ks028k%28v=vs.90%29.aspx

古いコンパイラ(2003)でもゼロで初期化されました。

2014/2/8 (土) 11:29:13 syat  
Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.107 Safari/537.36
[2119] Re4:タスクトレイのプロセスが異常終了します
build_config.h にある USE_LEAK_CHECK_WITH_CRTDBG を使用すると、
「warning C4345: 動作変更 : 形式 () の初期化子で構築される POD 型のオブジェクトは既定初期化されます。」
という警告が出るのを解消したかったのです。

http://d.hatena.ne.jp/hiiragi_corona/20120618/1340012843
こちらを見ると、@警告を無視する、Aクラスにする、Bコンストラクタ呼ばないのどれかということなので、BをやろうとしましたがNGでした。
とりあえず無視してよい警告のようなので修正を戻しました。

2014/2/8 (土) 14:02:03 novice  
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0
[2123] Re5:タスクトレイのプロセスが異常終了します
▼ syatさん
> build_config.h にある USE_LEAK_CHECK_WITH_CRTDBG を使用すると、
> 「warning C4345: 動作変更 : 形式 () の初期化子で構築される POD 型のオブジェクトは既定初期化されます。」
> という警告が出るのを解消したかったのです。


自分もUSE_LEAK_CHECK_WITH_CRTDBGは有効にしていて、コンパイル時にC4345が表示されていたので気にはなっていたのですが、POD型の意味がよく分からずにほったらかしてました。
(そういう経緯があったので、少し調べてみました)

参考までに、もっと古いコンパイラ(VC6)だとゼロで初期化されませんでした。

[▼次のスレッド]
INCM/CMT
Cyclamen v3.81
[ut:0.010][st:0.000]