エディタ上で実行できないTKinfo...No.07694
SBNB さん 04/01/16 22:03
 
いつも便利にありがたく使っております。

鶴亀のマクロで、「エディタ上で実行できないTKinfo.dll呼び出しが行われまし
た。」と言うエラーがよく出ます。

残念ながらあまり能力がなく、原因箇所を特定できないのですが、このメッセージの
ときに行番号と、該当行を一緒に表示するようにしてもらうわけには行かないでしょ
うか。

どうも、エディタ上で使えないとヘルプに書いてある以外のものでも引っかかってい
るらしきものもありますし、なんか混沌として感じております。

他のマクロ作者様でも、何かよいアイディアをお持ちの方がおられましたら教えてい
ただければと思います。絞れれば前後にmessage分なんでしょうけども。。。

[ ]
RE:07694 エディタ上で実行できないTKinfoNo.07695
秀まるお さん 04/01/16 22:55
 
 具体的にどういう関数が呼ばれてエラーになったのかくらいは、tkinfo.dll側
が表示してあげればいいとは思うんですが、なかなか手抜きがありまして…。

 とりあえずは、message文を入れる作戦になろうかと思いますけど。

[ ]
RE:07695 エディタ上で実行できないTKinfoNo.07697
SBNB さん 04/01/17 12:53
 
> とりあえずは、message文を入れる作戦になろうかと思いますけど。

やはりその手が手っ取り早いですか。。。
再現が難しいような状況で困っています。大量にmessage文を入れて再現するまでじ
っくりがんばってみるか、まるおさまにひそかに期待するか、それとも辛抱するか、
やってみます。ありがとうございました。

[ ]
RE:07697 エディタ上で実行できないTKinfoNo.07699
Iranoan さん 04/01/17 15:59
 
 SBNB さん今日は、Iranoan です。
> > とりあえずは、message文を入れる作戦になろうかと思いますけど。
>
> やはりその手が手っ取り早いですか。。。
> 再現が難しいような状況で困っています。
 少なくともこのエラーがでるのには、
(1) 問題の起きるマクロが、エディタ・ウィンドウ上で実行されている
(2) dllfunc/dllfuncstr 関数が使われている
の条件が必要です。

 ですから問題の起きるマクロが解っていれば、そのマクロの dllfunc/
dllfuncstr の直前に message 文を入れて、エディタ上で実行するのが最短だ
と思います。

 また
> エディタ上で使えないとヘルプに書いてある以外のものでも引っかかってい
> るらしきものもあります
があれば、これはこれでヘルプが更新されて外の方にも役立つと思います。

 あとどうしても自力解決できなくて、しかもそれほど長いマクロでなければ、
ここにアップして聞いてみるというのも一つの方法だと思います。

[ ]
RE:07699 エディタ上で実行できないTKinfoNo.07700
秀まるお さん 04/01/17 23:38
 
 次のV3.15にて、エラーメッセージの中に、「関数の内部コード = XXXX」のよ
うな表示を追加します。

 そこに出てくる番号を教えて頂ければ、具体的な関数名が何かお返事できます。

 ということでお願いします。

[ ]
RE:07699 エディタ上で実行できないTKinfoNo.07702
SBNB さん 04/01/18 00:15
 
Iranoanさん、コメントありがとうございます。


エディタ上で実行できないとヘルプに明言されていないマクロ関数ですが、DoGrep
でした。確かにこの関数のページにはエディタ上で使えないとは書いていないし、使
えるのではなかろうかと思う表現があるのですが、なんと、目次ページには本体に限
ると明言されておりました。私の見落としでした。

それと、2ペインでの鶴亀が呼ぶメールのウインドウと、秀丸エディタと、ヘルプ上
のエディタと言う表現がちゃんぽん状態になっておりました。よく理解しきれていな
かったのだと思います。


>それほど長いマクロでなければ、
>ここにアップして聞いてみるというのも一つの方法だと思います。

それもそうでしたが、440行ありまして、内部でループも激しいので大変です。ひと
まず、使っている全てのマクロ関数を取り出して、それを全てヘルプと照らしあわせ
て見ます。今途中ですが、上の勘違いも手伝って、かなりだめなことをしているよう
です。自動受信のときのマクロなので1度手をつけると、無人状態にするわけにはい
かなくなってしまうので、、それも大変な理由です。message文を入れるものなら、
定期受信は解除しなければならないし、付きっ切りになるしで。

ありがとうございました。

[ ]
RE:07700 エディタ上で実行できないTKinfoNo.07703
SBNB さん 04/01/18 00:19
 
秀まるお様

ツリー間違いました。Iranoanさんへのところへ書きましたが、私がいろいろと間違
いをしていました。今までぜんぜん気が付きませんでした。これはこれでがんばって
みます。


>「関数の内部コード = XXXX」のような表示を追加します。

助かります。ですが、問い合わせの嵐で、そちらが困る結果になりませんか。一覧に
しておけばすみますけど、ちょっと気になりました。(#私が嵐のように聞くという意
味ではないですが。。。極力控えますけど。。。)


[ ]
RE:07703 エディタ上で実行できないTKinfoNo.07704
秀まるお さん 04/01/18 00:39
 
 んでは、先に番号と関数の対応表(というか、内部のヘッダファイルの内容)
を書いておきます。もしそれを見たたけで想像が付けば、それで解決して欲しい
です。分からなければ聞いてください。


enum TKINFOBACK {
    TKINFOBACK_NONE,                // 0
    TKINFOBACK_GETROOTMAIL,         // 1 返信または転送元のメールの先頭アド
レスを返す、外部ウィンドウ専用
//  TKINFOBACK_ALLOCQUOTEDROOTBODY, //  返信または転送元のメール本文を引用し
てLocalAllocして返す
    TKINFOBACK_SMALLROOTHEADER,     // 2 元メールのヘッダをMakeSmallHeaderし
てLocalAllocして返す
    TKINFOBACK_GETCURRENTHEADERONE, // 3 現在メールのヘッダ内容を返す
    TKINFOBACK_COUNTCURRENTHEADER,  // 4 同じヘッダが何個あるか返す
    TKINFOBACK_GETACCOUNT,          // 5 番号指定でアカウント名を返す
    TKINFOBACK_CURRENTACCOUNT,      // 6 現在選択しているアカウントを返す
    TKINFOBACK_CURRENTFOLDER,       // 7 現在選択しているフォルダのパス名を返す
    TKINFOBACK_SELECTFOLDER,        // 8  フォルダの選択
    TKINFOBACK_EXPANDFOLDER,        // 9  フォルダの展開/折りたたみ
    TKINFOBACK_DOFILTER,            // 10 振り分けの実行
    TKINFOBACK_EXIT,                // 11 鶴亀メール本体の終了
    TKINFOBACK_DOCOMMAND,           // 12 コマンドの実行、param1はコマンドの値
    TKINFOBACK_DELETE,              // 13 現在のメールを削除する
    TKINFOBACK_MOVECOPY,            // 14 現在のメールを移動/コピー
    TKINFOBACK_GETFLAG,             // 15 現在のメールのフラグ(32bit)を返す
    TKINFOBACK_GETMAILTYPE,         // 16 現在のメールが受信したメールか新規
メールか返信メールか転送メールかを返す
    TKINFOBACK_CLEARUPDATED,        // 17 更新フラグをクリアする
    TKINFOBACK_SELECTPANE,          // 18 現在のフォーカスのある枠の指定
    TKINFOBACK_GETAUTOEXECMACRO,    // 19 自動実行マクロの取得
    TKINFOBACK_GETRECVMAILCOUNT,    // 20 直前の受信メール数
    TKINFOBACK_SELECTNEXTRECVMAIL,  // 21 受信メールを1つ選択する。選択した
メールはMAILFLAG_HOTがOFFになる
    TKINFOBACK_GETRECVMAILCOUNTINFOLDER,    // 22 現在フォルダ中の受信メール
数、ただし、SELECTNEXTRECVMAILした物は除く
    TKINFOBACK_SELECTNEXTRECVMAILINFOLDER,  // 23 現在フォルダ中から受信メー
ルを1つ選択する。選択したメールはMAILFLAG_HOTがOFFになる。

    TKINFOBACK_SETTHREADVIEW,           // 24 スレッド表示と一覧表示の切り替え
    TKINFOBACK_ISTHREADVIEW,            // 25 スレッド表示かどうか
    TKINFOBACK_GETSORTMETHOD,           // 26 ソート方法を返す
    TKINFOBACK_SETSORTMETHOD,           // 27 ソート方法の設定
    TKINFOBACK_GETVIEWAREA,             // 28 現在の表示範囲
    TKINFOBACK_SETVIEWAREA,             // 29 表示範囲の設定
    TKINFOBACK_GETMAILCOUNT,            // 30 現在フォルダのメール数(表示上)
    TKINFOBACK_GETMAILCOUNTALL,         // 31 現在フォルダのメール数(フォル
ダ中のすべて)
    TKINFOBACK_GETMAILINDEX,            // 32 現在メールの先頭からの順番(一
覧表示の時のみ)
    TKINFOBACK_SETMAILINDEX,            // 33 現在メールの先頭からの順番設定
(一覧表示の時のみ)
    TKINFOBACK_ISTRANSMITTING,          // 34 送受信の最中かどうか
    TKINFOBACK_GETSENTMAILCOUNT,        // 35 送信したメールの数
    TKINFOBACK_GETTRANSMITCANCELED,     // 36 送受信がキャンセルされたかどうか
    TKINFOBACK_GETTRANSMITERROR,        // 37 送受信でエラーが起きたかどうか
    TKINFOBACK_DISABLEDRAW,             // 38 画面描画の禁止/許可
    TKINFOBACK_ISTRAYICON,              // 39 トレーに入っているかどうか
    TKINFOBACK_GETHEADERVIEW,           // 40
    TKINFOBACK_SETCANCEL,               // 41 「後で送信/今すぐ送信」のキャ
ンセル
    TKINFOBACK_ROOTFOLDER,              // 42 返信元または転送元メールのフォ
ルダ
    TKINFOBACK_SETHEADER,               // 43 ヘッダの書き換え
    TKINFOBACK_ADDHEADER,               // 44 ヘッダ項目に値追加(コンマ区切
り)
    TKINFOBACK_EXECAT,                  // 45 別スレッドでコマンド実行
    TKINFOBACK_GETHOMEDIR,              // 46 config.szHomeDirの値を返す
    TKINFOBACK_GETSELECTEDROOTTEXT,     // 47
//  TKINFOBACK_ALLOCQUOTEDSELECTEDROOTTEXT,
    TKINFOBACK_GETVERSION,              // 48 鶴亀メールのバージョン番号
    TKINFOBACK_SETEDITORACCOUNT,        // 49 エディタのアカウントの切り替え
    TKINFOBACK_ACCOUNTFROM,             // 50
    TKINFOBACK_ACCOUNTREPLYTO,          // 51
    TKINFOBACK_GETFILENAME,             // 52 現在のメールのファイル名を返す
    TKINFOBACK_GETFILEPATH,             // 53 現在のメールのファイルのフルパ
スを返す
    TKINFOBACK_REMAKELIST,              // 54 メール一覧の作成し直し
    TKINFOBACK_GETXMAILER,              // 55 X-Mailerヘッダ内容の取得。
    TKINFOBACK_DECODEHEADER,            // 56 =?iso-2022-jp?b?等のデコード処
理。
    TKINFOBACK_STARTCOMMANDTIMER,       // 57 マクロ終了後に実行するコマンド
の指定
    TKINFOBACK_ADDATTACH,               // 58
    TKINFOBACK_UNDOATTACH,              // 59
    TKINFOBACK_NEXTPAGE2,               // 60 1ページ分確実に次ページ。
    TKINFOBACK_NEXTUNREADCUSTOM,        // 61
    TKINFOBACK_PREVUNREADCUSTOM,        // 62
    TKINFOBACK_ENSUREONLINE,            // 63 ダイヤルアップ関係
    TKINFOBACK_DIALUP,                  // 64
    TKINFOBACK_DIALUPSELECT,            // 65
    TKINFOBACK_HANGUP,                  // 66
    TKINFOBACK_CURRENTDIALUP,           // 67
    TKINFOBACK_REFRESHMAILLIST,         // 68 メール一覧の作成し直し
    TKINFOBACK_MAKEFOLDER,              // 69 フォルダの作成
    TKINFOBACK_ENVCHANGED,              // 70
    TKINFOBACK_SETCUSTOMTRANSMIT,       // 71 アカウント指定での送受信
    TKINFOBACK_SELECTADRBOOK,           // 72 アドレス帳を表示して宛先を返す
    TKINFOBACK_LOCALALLOC2,             // 73
    TKINFOBACK_LOCALFREE2,              // 74
    TKINFOBACK_LOADACCOUNTPROP,         // 75 アカウント毎の設定をロードする
    TKINFOBACK_SAVEACCOUNTPROP,         // 76 アカウント毎の設定を保存する
    TKINFOBACK_DELETEACCOUNTPROP,       // 77 内部用
    TKINFOBACK_MAKEACCOUNT,             // 78 アカウントの新規作成
    TKINFOBACK_GETSENDMACRO,            // 79 送信時用マクロ名の取り出し
    TKINFOBACK_GETCANCEL,               // 80 「後で送信/今すぐ送信」のキャ
ンセルの取り出し
    TKINFOBACK_GETFINDPACK,             // 81
    TKINFOBACK_SETFINDPACK,             // 82
    TKINFOBACK_DOGREP,                  // 83 grepコマンドの実行
    TKINFOBACK_DOGREPPERSON,            // 84
    TKINFOBACK_PUSHFINDPACK,            // 85 検索条件の履歴への保存
    TKINFOBACK_QUOTE,                   // 86 引用の処理(例外的)
    TKINFOBACK_QUOTE2,                  // 87 引用の処理(例外的)
    TKINFOBACK_SETEDITORACCOUNT2,       // 88 エディタのアカウントの切り替え
(ヘッダ書き換え付き)
    TKINFOBACK_GETCURRENTPANE,          // 89 V1.56
    TKINFOBACK_SETHEADER2,              // 90 ヘッダの書き換え
    TKINFOBACK_NEXTPREVCUSTOM,          // 91 次のメールなど
    TKINFOBACK_ISTURUKAMEMACROEXECUTING,// 92
    TKINFOBACK_ISHIDEMARUMACROEXECUTING,// 93
    TKINFOBACK_DELETEHEADER,            // 94 ヘッダ削除
    TKINFOBACK_GETMAILCOLOR,            // 95 メールの色
    TKINFOBACK_SETMAILCOLOR,            // 96
    TKINFOBACK_SETMAILFLAG,             // 97 メールのフラグ設定
    TKINFOBACK_FINDBOOK,                // 98 Emailをアドレス帳から検索して、
名前を返す。見つからなければ""
    TKINFOBACK_FINDBOOK2,               // 99 名前+Emailをアドレス帳から検査
して、名前を変換して名前部分だけを返す。
    TKINFOBACK_FINDBOOK3,               // 100 名前+Emailをアドレス帳から検
査して、名前を変換して全体を返す。
    TKINFOBACK_GETDONTORIKAESHI,        // 101
    TKINFOBACK_SAVEDRAFT2,              // 102 サブフォルダ指定付きのSaveDraft
    TKINFOBACK_GETRECVMAILCOUNTSHOW,    // 103 trans.cRecvLastShowを返す関数。
    TKINFOBACK_MAKERESENTFORWARD,       // 104 そのまま転送コマンド
    TKINFOBACK_SETWINDOWCENTER,         // 105
    TKINFOBACK_FINDBOOKNOTE,            // 106 備考1を返す
    TKINFOBACK_FINDBOOKNOTE2,           // 107 備考2を返す
    TKINFOBACK_FINDBOOKNOTE3,           // 108 備考3を返す
    TKINFOBACK_FINDBOOKGROUP,           // 109 グループ名を返す。
    TKINFOBACK_FINDBOOKGROUPPATH,       // 110 グループのパス名を返す。
    TKINFOBACK_LOADFOLDERTEMPLATE,      // 111 param1=type, param2=アカウン
ト名 param3=フォルダ名
    TKINFOBACK_SAVEFOLDERTEMPLATE,      // 112 param1=type, param2=アカウン
ト名 param3=フォルダ名 param4=内容
    TKINFOBACK_GETTEMPLATENAME,         // 113 V2.04 param1=type, param2=番号
    TKINFOBACK_LOADTEMPLATE,            // 114 param1=type, param2=名前
    TKINFOBACK_GETTEMPLATEASSOCIATEDSIGN,// 115 param1=type, param2=名前
//  TKINFOBACK_SAVETEMPLATE,            // param1=type, param2=名前, param3=
内容, param4=連動させる署名
    TKINFOBACK_SWITCHTEMPLATE,          // 116 テンプレートの切り替え(エデ
ィタ上で)、param1=テンプレート名
    TKINFOBACK_SWITCHSIGN,              // 117 署名の切り替え(エディタ上
で)、param1=署名の名前
    TKINFOBACK_SETTARGETDRAFTFOLDER,    // 118 SetTargetDraftFolder
    TKINFOBACK_IMPORT,                  // 119 param1=ファイル名, param2=種
類, param3=recvかどうか、param4=makelogかどうか
    TKINFOBACK_EXPORT,                  // 120 param1=ファイル名/フォルダ名,
 param2=種類, param3=エンコード関係指定
    TKINFOBACK_ALTERSAVE,               // 121 改変保存(送信済みメールで使
う用)
    TKINFOBACK_REGIST,                  // 122 param1=レジストキー, param2=名前
    TKINFOBACK_BEGINEDITMAIL,           // 123
    TKINFOBACK_CANCELEDITMAIL,          // 124
    TKINFOBACK_SAVEEDITMAIL,            // 125
    TKINFOBACK_CHECKDUPLICATION,        // 126 CheckDuplication
    TKINFOBACK_CHECKDUPLICATION_UNDER,  // 127 CheckDuplicationUnder
    TKINFOBACK_GETENCODEDSIZE,          // 128 GetEncodedSize
    TKINFOBACK_GETGREPWND,              // 129
    TKINFOBACK_GETFILEOFFSET,           // 130 MailFileOffset
    TKINFOBACK_LOCKSELECTION,           // 131 LockSelection
    TKINFOBACK_UNLOCKSELECTION,         // 132 UnlockSelection
    TKINFOBACK_ENUMSELECTION,           // 133 EnumSelection
    TKINFOBACK_PROCESSKINSOKU,          // 134 ProcessKinsoku
    TKINFOBACK_SHOWNOTIFYWND,           // 135 ShowNotifyWnd, GetNotifyWnd,
HideNotifyWnd
    TKINFOBACK_CREATEMESSAGEID,         // 136 CreateMessageId
    TKINFOBACK_GETNEXTFOLDER,           // 137
    TKINFOBACK_GETPREVFOLDER,           // 138
    TKINFOBACK_GETFOLDERMAILCOUNT,      // 139
    TKINFOBACK_GETFOLDERHOTSTATE,       // 140
    TKINFOBACK_GETFOLDEREXPANDSTATE,    // 141
    TKINFOBACK_CSVEXPORT,               // 142
    TKINFOBACK_DOBOOKGREP,              // 143
    TKINFOBACK_DOLDAPGREP,              // 144
    TKINFOBACK_GETGREPRESULTPART,       // 145
    TKINFOBACK_RENAMEATTACH,            // 146
    TKINFOBACK_DELETEATTACH,            // 147
    TKINFOBACK_ISDIALUPABLE,            // 148 IsDialupable   V2.79
    TKINFOBACK_GETSELECTEDMAILCOUNT,    // 149 SelectedMailCount V3.07β1
    TKINFOBACK_ADRBOOK,                 // 150 アドレス帳、V3.07β1
    TKINFOBACK_GETCURRENTTEMPLATENAME,  // 151
    TKINFOBACK_GETCURRENTSIGNNAME,      // 152
    TKINFOBACK_GETTEMPLATEREFERENCE,    // 153
    TKINFOBACK_SETTEMPLATEREFERENCE,    // 154
    TKINFOBACK_REMOTEMAIL_RELOAD,       // 155
    TKINFOBACK_REMOTEMAIL_DELETE,       // 156
    TKINFOBACK_FINDBOOKDATE,            // 157 アドレス帳中の登録日を返す
    TKINFOBACK_HEADERORIKAESHI,         // 158 ヘッダ用の折り返し処理をする。
    TKINFOBACK_CURRENTACCOUNTGROUP,     // 159 現在選択しているアカウントグ
ループを返す
    TKINFOBACK_EXECATMAIN,              // 160
    TKINFOBACK_GETRECVMAILCOUNTEXCLUDEPARTIAL,  // 161 V3.07β29
    TKINFOBACK_GETBOOKWND,              // 162 V3.07β33 アドレス帳ウィンド
ウのハンドルを返す。
    TKINFOBACK_GETOPENEDWND,            // 163 V3.07β33 現在のメールを開い
てるエディタのハンドルを返す。
    TKINFOBACK_HIDEMARU_SCREENTOPY,     // 164 V3.07β33 hidemaru_screentopy
};

[ ]
RE:07704 エディタ上で実行できないTKinfoNo.07705
SBNB さん 04/01/18 00:53
 
> んでは、先に番号と関数の対応表(というか、内部のヘッダファイルの内容)
>を書いておきます。

すごいビッグなプレゼントをありがとうございます。大事にします。

[ ]
RE:07704 エディタ上で実行できないTKinfoNo.07707
SBNB さん 04/01/18 18:06
 
秀まるお様

V3.15を入れまして、エラー内容が分かるようになり、非常に助かっています。あり
がとうございました。

[ ]