エラーメッセージの対処方法についてNo.38495
どんちゃん さん 10/05/13 13:40
 
こんにちは。
いつもお世話になっております。

エラーメッセージの対処方法についてご教示ください。

【出力されたメッセージ】
「DLLがロードされてないのにdllfunc関数が使われました」

【出力された経緯】
フリーソフト「メモ箋人」が、マクロ利用で秀丸メールと連携可能とありましたので、
本日、同ソフトをインストール後、同ソフトが提供しているメモ箋人.macをマクロ登
録して、早速連携を試そうとしたところ、上記のエラーメッセージが出力され、連携
利用もできませんでした。
マクロ登録の方法は、既に利用できている他のマクロ同様に行いましたので、登録の
方法が誤っているとは考えられません。

つきましては、エラーメッセージの対処方法についてご教示いただければ幸いです。
お手数をおかけいたしますが、よろしくお願いいたします。

[ ]
RE:38495 エラーメッセージの対処方法につNo.38496
秀まるお2 さん 10/05/13 14:44
 
 メモ箋人をダウンロード&インストールしてマクロの中身を見たんですが、僕
の環境でも同じエラーが出ました。

 マクロの中に、

    loaddll "CMHMPlgn.dll";

 という処理があるんですが、これがエラーになってて、結果としてこの後の
dllfunc呼び出しでエラーになるようです。

 直す方法としてですが、マクロの中の上記文を書き換えればいいです。

    loaddll "CMHMPlgn.dll";

 の所を、

    loaddll currentmacrodirectory + "\\CMHMPlgn.dll";

 のように直せばいいです。

 それでどうでしょ?

[ ]
RE:38496 エラーメッセージの対処方法につNo.38497
どんちゃん さん 10/05/13 15:33
 
早速のご返信ありがとうございます。

ご教示いただいたとおりマクロの一文を書き換えましたが、
残念ながら同じエラーメッセージが出てしまいました…。

自分の操作ミスの可能性も考え、何度か上記一文をコピーして上書き
して確認してみましたが、やはり同じメッセージが出ました。
まだどこか誤りが残っているのでしょうか?

すみません。何度もお手数をおかけしますが、再度ご教示いただけ
ますでしょうか。
よろしくお願いいたします。

[ ]
RE:38497 エラーメッセージの対処方法につNo.38498
秀まるお2 さん 10/05/13 15:43
 
    loaddll "CMHMPlgn.dll";

 の所を、実際にそのdllの存在してるフォルダのフルパスを指定すればいいと
思います。

 僕の場合(64bit版Windows)なら、

 loaddll "c:\\program files(x86)\\Ryusys\\メモ箋人\\CMHMPlgn.dll";

 になりましたが、普通の32bit版Windowsだと、

 loaddll "c:\\program files\\Ryusys\\メモ箋人\\CMHMPlgn.dll";

 になると思います。

 実際のフォルダ名はエクスプローラを使うなどして確認していただけるといい
と思いますけども、普通にインストールすれば上記フォルダ名になると思います。

 それでどうでしょ?

[ ]
RE:38497 エラーメッセージの対処方法につNo.38499
秀まるお2 さん 10/05/13 15:44
 
 それとあと、loaddllに成功してるかどうか確認する処理も入れるといいかも
しれません。

  loaddll "....";

 の後に、

  if( !result ) message "loaddllに失敗しました。";

 を入れると、loaddllに失敗してるかどうか分かると思います。

[ ]
RE:38499 エラーメッセージの対処方法につNo.38500
どんちゃん さん 10/05/13 16:55
 
すみません。マクロについて詳しくわかっておらず、お恥ずかしい限りです。
初心者にもわかりやすく教えていただき、ありがとうございます。

それで、再度ご教示いただいた一文に修正してみました。
当方の使用OSは通常のWindows XPですので、

 loaddll "E:\\program files\\Ryusys\\メモ箋人\\CMHMPlgn.dll";
(インストールディレクトリはEドライブでしたので、そこだけ変更しています。)

に修正しました。
すると今度は、新たなエラーメッセージが…。

【出力されたメッセージ】
メモ箋人.MAC(36):文法エラーです。
または、このバージョンではこの文は使えません。

(※36行目は、ちょうど書き換えた一文の行です。)

メモ箋人の動作環境を確認しましたが、秀丸メール Version 4.63 以降で連携可能と
ありましたので、現在当方が使用している秀丸メールV5.38でも大丈夫かと思ってお
りましたが、最新版では使えないということなのでしょうか…。


[ ]
RE:38500 エラーメッセージの対処方法につNo.38501
秀まるお2 さん 10/05/13 17:04
 
 たぶん、「loaddll」と書いた所の前にあるのが全角空白だからエラーになっ
たんじゃないかと思います。

 半角空白か、またはタブ文字ならエラーにならないと思います。

 どうでしょ?

[ ]
RE:38501 エラーメッセージの対処方法につNo.38502
どんちゃん さん 10/05/13 17:33
 
ご教示ありがとうございます!
めちゃくちゃ初歩的なミスでお手を煩わせてしまい、申し訳ありませんでした(><)

構文を再修正後、受信済み&送信済みメールについては、マクロ実行で無事付箋を作
成できました。
ちなみに、未保存の新規作成中メール、草稿メール、未送信メールについては、この
マクロでは連携していないようでした。

これでようやくこの付箋ソフトを選んだ効果が実感できました。
お忙しいところ、初歩的なミスに辛抱強くお付き合いいただき、感謝いたしておりま
す。
この度も、大変迅速にご対応いただき、本当にありがとうございました。


[ ]
RE:38502 エラーメッセージの対処方法につNo.38507
秀まるお2 さん 10/05/14 09:00
 
> ちなみに、未保存の新規作成中メール、草稿メール、未送信メールについては、この
> マクロでは連携していないようでした。

 マクロの中に、そういう処理が入ってました。

        #n = dllfunc("MailType");

        // 受信メールもしくは送信済みメールのみ処理する
        if (#n == 3 || #n == 4)

 となってます。

 ここを例えば、

        if (  1 )

 のように無理矢理書き換えれば未送信メールでもなんでも動くと思いますけど
も、そうすると何か誤動作の可能性があるのかもしまれんせん。自己責任でいじ
るのはアリかと思います。

[ ]
RE:38507 エラーメッセージの対処方法につNo.38509
どんちゃん さん 10/05/14 09:46
 
おはようございます。

そうですね。
今のところは送信済&受信済メールの付箋化で十分ですので、このまま使ってみます。

細かなところまでご対応いただき、ありがとうございました。


[ ]