マクロでプロセス違反No.04826
ひろ さん 01/04/25 00:24
 
 秀まるおさん今日は、ひろです。
 Ver.1.11 であるマクロを使用すると、プロセス違反で落ちてしまいます。
おそらくマクロが大きいのが原因だと思いますが、Ver.1.09 までは問題な
かったライブラリに登録してある、「鶴亀メール作成支援マクロ」に含まれ
る tkconf.mac です。なお dump.txt を以下に転記しておきます。

 3F000 を足すとhidectl2.mapのアドレスになる。

23:55:48.210 (4021) ProcessCommand 42002
********** 01/04/24 23:55:48.490 1.11  Exception
eax=000000CF ebx=FFFFFFFF ecx=05041680 edx=006CC5D9 esi=00000000 edi=050415B0 ebp=006CC478 esp=006CC44C eip=01FD58B2
Stack Dump
000000CF 050415B0 006CC4D4 01FF47AC 01FFF578 00000000 00000000 006CC44C
006CF8E8 01FFB5ED FFFFFFFF 006CE5E4 01FE2165 006CC5D9 000000CF 01175506
01FFE394 050418F0 01FFE394 050418C0 0110CD23 006CC5D8 006CC5D9 000000CF
01175506 BFF7748F 006CE84C 01175506 006CC7CC 006CC4CC 0000001B 839520F8
00000019 01FE2100 006CC5D8 006CC5D9 006CC5F0 00000016 BFF741CD 006CC654
006CC8D0 006CC7CC 006CC624 BFF76445 02005D88 02005D68 00000001 050410A2
006CC534 01FF70F7 050410F8 000000C3 BFF7B9B6 81757D84 00000010 01FF4713
0200A5B0 006CC568 01FF3610 02005D88 02005D68 00000001 050410A3 006CC570
FramePtr ReturnAd Param#1  Param#2  Param#3  Param#4  Param#5  Param#6  Param#7  Param#8  Param#9  Param#10 MachineCode
006CE5E4 01FE2165 006CC5D9 000000CF 01175506 01FFE394 050418F0 01FFE394 050418C0 0110CD23 006CC5D8 006CC5D9 F7 D8 1B C0 5E F7 D8 83
006CE850 0110DB20 00000001 006CE884 01175506 BFF77423 00005700 00000001 BFF760DD 000003F3 0002D895 000003F3 E9 06 01 00 00 8D 95 AC EvalLevel5 (2288) call CallDllFunc
006CE86C 0110DEE9 006CE8A0 01175506 BFF77429 006CE884 8394912E 006CE888 0110E22B 006CE8BC 01175506 00000000 85 C0 0F 84 B5 02 00 00
006CE888 0110E22B 006CE8BC 01175506 00000000 006CE8A0 8394912E 006CE8A4 0110E45C 006CEB24 01175506 00000000 85 C0 0F 84 AA 01 00 00
006CE8A4 0110E45C 006CEB24 01175506 00000000 006CE8BC 8394912E 006CE8C0 0110E8D5 000000CF 01175506 BFF7745F 85 C0 0F 84 CC 03 00 00
006CE8C0 0110E8D5 000000CF 01175506 BFF7745F 00000000 8394912E 006CEB28 0110D25A 006CEB5C 01175506 BFF77423 85 C0 0F 84 07 01 00 00
006CEB28 0110D25A 006CEB5C 01175506 BFF77423 0110CE5C 01140108 0114010C 00000014 00000001 006CEB7C 01175506 85 C0 0F 84 61 0A 00 00
006CEB44 0110DEE9 006CEB78 01175506 BFF77429 006CEB5C 83949095 006CEB60 0110E22B 006CEB94 01175506 00000000 85 C0 0F 84 B5 02 00 00
006CEB60 0110E22B 006CEB94 01175506 00000000 006CEB78 83949095 006CEB7C 0110E45C 006CEBC4 01175506 00000000 85 C0 0F 84 AA 01 00 00
006CEB7C 0110E45C 006CEBC4 01175506 00000000 006CEB94 83949095 006CEB98 0110E993 83949094 01175506 00000009 85 C0 0F 84 CC 03 00 00
006CEB98 0110E993 83949094 01175506 00000009 00000001 83949095 006CEBBC 0110E9FF 01175506 01111AF2 00000000 85 C0 74 4D 8B 45 FC E9
006CEBBC 0110E9FF 01175506 01111AF2 00000000 01175506 00000009 01175506 09175506 006CEBE4 0111250E 83949094 85 C0 75 02 5E C3 8B CE
006CEBE4 0111250E 83949094 00000000 01175506 00000000 00000000 8394903E 83949094 096CEC6C 006CEC6C 01112BC8 E9 14 04 00 00 8B CE E8
006CEC6C 01112BC8 0048B3B6 01175506 00000000 00000000 00007EE5 00000243 000000B8 83952081 00F77B40 00000001 3B C3 89 46 44 74 76 39 record.cpp(5551) PlaySubSub
006CEC84 01112E56 01175506 01113218 00000111 01175506 006CECDC 010EE998 0048B3B6 00000111 007E000C 00000000 5E C3 80 3D 04 FE 13 01
006CECDC 010EE998 0048B3B6 00000111 007E000C 00000000 00000000 000003EC 00000005 20C4208C 006CECEC BFF7C5DE EB 42 68 03 01 00 00 8D
006CECF4 004382C8 01170078 00000002 0048B3B6 00000000 006CF8F4 004344CF 0048B3B6 00000111 00000111 006CF99C 6A 01 58 5E 5D C2 04 00
006CF8F4 004344CF 0048B3B6 00000111 00000111 006CF99C 30FC30E1 000030EB 006CEE84 00000005 00000000 0000FFFF 6A 01 58 E9 15 F6 FF FF
006CF99D FFFFFFFC 004344CF 006CECF4 006CF920 BFF7B76C BFF74277 BFFC9490 BFF7B787 BFF74277 BFFC9490 BFF7B83F CF 44 43 00 F4 F8 6C 00
43003030 30302046 43454336 30203446 46433630 20303239 37464642 43363742 46464220 37323437 46422037 34394346

23:55:48.210 R 3261 00000C54 004E 000003E8 006CF870
23:55:48.210 S 3249 00000C54 0127 00010002 00000000
23:55:48.210 R 3261 00000C54 0127 00010002 00000000
23:55:48.210 r  917 00000C5C 0100 00000011 411D0001
23:55:48.210 P  910 000008F8 0111 0000A412 00000000
23:55:48.210 S 2787 000008F8 0111 0000A412 00000000
23:55:48.430 S 2787 000008F8 5477 00000006 006CC79C
23:55:48.430 R 2789 000008F8 5477 00000006 006CC79C
23:55:48.430 S 2787 000008F8 5477 00000006 006CC79C
23:55:48.430 R 2789 000008F8 5477 00000006 006CC79C
23:55:48.430 S 2787 000008F8 5477 00000006 006CC79C
23:55:48.430 R 2789 000008F8 5477 00000006 006CC79C
23:55:48.430 S 2787 000008F8 5477 00000006 006CC79C
23:55:48.430 R 2789 000008F8 5477 00000006 006CC79C
23:55:48.490 S 2787 000008F8 5477 00000006 006CC79C
23:55:48.490 R 2789 000008F8 5477 00000006 006CC79C
23:55:48.490 S 2787 000008F8 5477 00000007 00000000
23:55:48.490 R 2789 000008F8 5477 00000007 00000000
23:55:48.490 S 2787 000008F8 5477 0000002F 00000000
23:55:48.490 R 2789 000008F8 5477 0000002F 00000000


23:56:23.750 ( 758) 鶴亀開始
23:56:24.900 ( 638) HmCreate
23:56:24.900 (2762) call WinMainSub
23:56:24.960 (2762) FrameWndProc: WM_CREATE
23:56:24.960 (2762) ClientWndProc: WM_CREATE
23:56:25.010 (2762) return WinMainSub
23:56:25.010 ( 640) HmCreate return
23:56:25.560 (4717) StartAutoDownTimer()
23:56:25.560 (4725) StartAutoDownTimer() set
23:56:25.780 (4021) ProcessCommand 40024
23:56:25.780 (2974) EnterTrans(), dwRet = 0
23:56:25.780 (2982) EnterTrans() entered
23:56:25.780 (1914) ProcessTransmitSub()
23:56:25.780 ( 526) RASSUB::EnsureOnline()
23:56:25.780 ( 535) RASSUB: GetConnectedState
23:56:25.890 ( 543) Connection state = 80
23:56:26.610 ( 548) RASSUB: InternetAttemptConnect
23:56:26.610 (4229) DialogBox2() template=293
23:56:27.050 (4231) DialogBox2() exit
23:56:27.050 ( 579) RASSUB::EnsureOnline() exit
23:56:27.050 (2987) LeaveTrans()
23:56:27.050 (4717) StartAutoDownTimer()
23:56:27.050 (4725) StartAutoDownTimer() set
23:57:32.410 (4021) ProcessCommand 40019
23:57:32.460 (6757) ThreadFunc: HmCreate
23:57:32.460 (2268) call WinMainSub
23:57:32.460 (2268) FrameWndProc: WM_CREATE
23:57:32.460 (2268) ClientWndProc: WM_CREATE
23:57:32.460 (2268) return WinMainSub
23:57:32.460 (6759) HmCreate return
23:57:35.980 (5851) DeleteAttachFile(): deleting current attach list
23:57:46.580 (4021) ProcessCommand 40001
23:57:46.580 (6757) ThreadFunc: HmCreate
23:57:46.580 (2268) call WinMainSub
23:57:46.580 (2268) FrameWndProc: WM_CREATE
23:57:46.580 (2268) ClientWndProc: WM_CREATE
23:57:46.630 (2268) return WinMainSub
23:57:46.630 (6759) HmCreate return
23:57:47.130 (2960) エディタコマンド: 40046
23:57:47.130 (2960) エディタコマンド: 40045

[ ]
RE:04826 マクロでプロセス違反No.04830
秀まるお さん 01/04/25 11:09
 
 調べてみたら、死んでる場所は田楽DLLの中で、具体的にはtkconf.macの1115行目


    dllfunc("SETCTRLITEM","","プログラムを選択して下さい") &&

 で死んでました。この呼び出しではパラメータは2つしかありませんが、田楽DLL
が第3パラメータを参照しにいって死んでます。

 で、田楽DLLの説明を見たら、reffilebuttonの場合のSETCTRLITEM呼び出しでは、
第3パラメータは省略可能と書いてあります。省略した場合はパラメータに何が渡さ
れるか不定なので、そもそもの田楽DLLの仕様がおかしい気がします。

 しいて対応するとしたら、田楽DLL側で、第3パラメータをIsBadStringPtr()でチ
ェックしてもらうってことになると思います。それか仕様変更してもらうか、あるい
は秀丸側で常に余計にNULLまたは""等のパラメータを渡すようにするかです。

 あ、鶴亀内の秀丸ですが、実は今回からコンパイル時の最適化オプションを少し変
更しまして、たまたま今まで大丈夫だったのが大丈夫じゃなくなったってことのよう
です。

 杉浦さんに相談してみてほしいです。

[ ]
RE:04830 マクロでプロセス違反No.04831
秀まるお さん 01/04/25 11:22
 
>  杉浦さんに相談してみてほしいです。

 っと言いましたが、どうも今までは省略時のパラメータ部分は全部NULLになってい
たようですね。田楽DLL側ではちゃんとNULLかどうかのチェックは入っているようで
す。

 ということで、やっぱり秀丸側で常にNULLパラメータを付けて関数呼び出しするよ
うに修正させていただきます。

[ ]
RE:04831 マクロでプロセス違反No.04834
ひろ さん 01/04/25 18:23
 
 秀まるおさん今日は、ひろです。
> >  杉浦さんに相談してみてほしいです。
>
>  っと言いましたが、どうも今までは省略時のパラメータ部分は全部NULLになってい
> たようですね。田楽DLL側ではちゃんとNULLかどうかのチェックは入っているようで
> す。
>
>  ということで、やっぱり秀丸側で常にNULLパラメータを付けて関数呼び出しするよ
> うに修正させていただきます。
 tkconf.mac の 1115 行目付近で第 3 引数に何か指定しても上手くいかず、
対処法を悩んでいました。修正して頂けるとのことで、よろしくお願いしま
す。

[ ]