ht_tools.dllをロード後にHmJre.dllをローNo.11531
tomato さん 25/04/01 16:30
 
ht_tools.dllをロード後にHmJre.dllをロードすると失敗します。
秀丸ファイラーClassicでは2つDLLをロードすることはできないのですか?(vbsでも
失敗しました)

======test.js=========================

 var dll;
 var dll_obj_var;
 var dll_obj_str;
 var dllname_s = "ht_tools.dll";
 var hmdll = "C:\\Program Files\\HmFilerClassic\\HmJre.dll";
 var rc;

 //DLLをロードしオブジェクトを取得
 dll = loadDll(dllname_s);
 if(dll == undefined)
 {
  //ロード失敗
  Echo("DLLロード失敗");
  endMacro();
 }
 //数値オブジェクト
 dll_obj_var = dll.dllFunc;
 //文字列オブジェクト
 dll_obj_str = dll.dllFuncStr;
 
 //1だと成功、0だと失敗
 rc = dll_obj_var.hmjre_load(hmdll);
 if(0 == rc)
 {
  //ロード失敗
  Echo("hmjre.dllロード失敗");
  endMacro();
 }

endMacro();

[ ]
RE:11531 ht_tools.dllをロード後にHmJre.No.11532
秀丸担当 さん 25/04/01 17:53
 
こちらで確認してみた限りではロード失敗とはなりませんでしたが、気になる点はあ
ります。
まず、ht_tools.dllの関数であるhmjre_loadは、秀丸ファイラーClassicではないの
で、中身がどうなっているかは分からないです。
秀丸ファイラーClassicに付属のHmJre.dll相当のファイルは、HmJre.dllというファ
イル名ではなく、HmFilerClassicJre.dllになっています。
もしかしたら、以下のようにするとうまくいくのかもしれません。
var hmdll = "C:\\Program Files\\HmFilerClassic\\HmFilerClassicJre.dll";
試してみたところでは、ここが適当なファイル名でもなぜか動作しているように見え
ました。

[ ]
RE:11532 ht_tools.dllをロード後にHmJre.No.11533
tomato さん 25/04/01 19:14
 
>もしかしたら、以下のようにするとうまくいくのかもしれません。
>var hmdll = "C:\\Program Files\\HmFilerClassic\\HmFilerClassicJre.dll";

ありがとうございます。ファイル名変更で動きました。

>試してみたところでは、ここが適当なファイル名でもなぜか動作しているように見
>えました。
その関数の仕様で、秀丸エディタや秀丸メールもhmjre.dllがないか探してくれるよ
うになっています。何も指定しなくても(""としていても)を検索してくれます。

秀丸担当さん、お手数をおかけしてすみません。
ありがとうございました。



[ ]
RE:11533 ht_tools.dllをロード後にHmJre.No.11534
秀丸担当 さん 25/04/02 09:59
 
hmjre_loadは、HmJre.dllがどこかに無いか探す機能があったのですね。
それで納得しました。


[ ]