[ 新規に投稿する ]

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.dllをロードすると失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.dllをロードすると失No.11533
tomato さん 25/04/01 19:14 [ コメントを投稿する ]
  >もしかしたら、以下のようにするとうまくいくのかもしれません。
>var hmdll = "C:\\Program Files\\HmFilerClassic\\HmFilerClassicJre.dll";

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

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

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


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

[ 新規に投稿する ]