[▲前のスレッド]

2014/2/6 (木) 19:28:55 LR4  
Mozilla/5.0 (Windows NT 6.1; rv:26.0) Gecko/20100101 Firefox/26.0
[2104] タスクトレイのプロセスが異常終了します
v2.1.1.0ですが、起動時にタスクトレイのプロセスが異常終了してしまうことがあります。
自分の環境(Win7 Pro 32bit)では「アイコン付きメニュー」のON/OFF切替え後の再起動で異常終了することがありました。
タスクトレイ常駐はOFFにしています。
異常終了時のsakura.iniを見るとszLanguageDllに文字化けした長い文字列が入っていました。
szLanguageDll=の行を削除するととりあえず正常起動しますが、設定変更後の全終了→再起動で同じように異常終了することがあります。

直接の原因かわかりませんが、CShareData::InitShareData()でszLanguageDllが初期化されていないみたいな気がします。
以下のような行の追加が必要なのではないでしょうか。
m_pShareData->m_Common.m_sWindow.m_szLanguageDll[0] = _T('\0');

2014/2/6 (木) 20:33:25 LR4  
Mozilla/5.0 (Windows NT 6.1; rv:26.0) Gecko/20100101 Firefox/26.0
[2106] Re:タスクトレイのプロセスが異常終了します
今のところ、以下の手順でszLanguageDll行の文字化けは100%再現します。

(1) sakura.iniを削除しておく
(2) sakura.exeをダブルクリックで起動
(3) [共通設定]-[ウィンドウ]-[アイコン付きメニュー]をOFFにする
(4) [ファイル]-[サクラエディタの全終了]

(4)の後、sakura.iniを別エディタで見るとszLanguageDllの行が文字化けしている。
ただし、文字化けはしていても次回起動で異常終了しない場合もあります。

> m_pShareData->m_Common.m_sWindow.m_szLanguageDll[0] = _T('\0');

手元の環境で上記の行を追加してビルドしてみましたが、それでも改善しませんでした。orz
他にも何か修正が必要なのでしょうか…

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)だとゼロで初期化されませんでした。

2014/2/6 (木) 22:32:22 LR4  
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0
[2109] Re2:タスクトレイのプロセスが異常終了します
> > m_pShareData->m_Common.m_sWindow.m_szLanguageDll[0] = _T('\0');

上記の修正に加えて、CSelectLang::InitializeLanguageEnvironm
ent()内に、
psLangInfo->szDllName[0] = _T('\0');
の行を追加したら文字化けしなくなりました。

正しい対処かわかりませんが、ご確認願います。

2014/2/8 (土) 11:48:45 syat  
Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.107 Safari/537.36
[2120] リクルート
▼ LR4さん

スレッドの趣旨と関係ないのですが、掲示板で名前をお見かけするので、開発メンバーになりませんか?
管理掲示板とかでSourceforgeアカウントを名乗っていただければコミット権限をつけます。

アクティブメンバー数維持のため最近活動している方に声かけ中です。Wikiでも みけCATさんに勧誘コメントを残しました。
他の方も、ちょっと手伝ってもよいとか、やってみたい事がある、という方を歓迎しますので、管理掲示板で名乗ってください。
イタズラ目的でないと判断できたら権限を付けます。

以上リクルートでした。

2014/2/8 (土) 13:11:47 LR4  
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0
[2121] Re:リクルート
▼ syatさん
お誘いいただけて光栄ですが、今回は遠慮させていただきます。
お役に立ちたくても能力足りてないですし、”修業中”ってことでお願いします。
(^^;;;

2014/2/9 (日) 09:25:10 syat  
Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.107 Safari/537.36
[2126] Re2:リクルート
▼ LR4さん
そうですか。気が向いたらいつでもどうぞ^^

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