プロが教える店舗&オフィスのセキュリティ対策術

VBで開発をしているのですが、一つの処理(関数)で時間のかかる処理があって、その経過をプログレスバーで表示させようと思ってるのですが、関数内の処理の進み具合を表示することってできるのでしょうか?
ちなみに、関数はDLLです。
何かよい方法がありましたら、教えていただきたいと思っております。よろしくお願いします。

A 回答 (2件)

DLL側が何でできているかがわかりませんが、



VBのActiveXDLLでできているのであれば、DLL側からイベントを発行させればできるじゃないかな?(WithEvents)

CのDLLでできているのであれば、Cの中で別スレッドで実行して、VB側が進捗要求を求めてあげればできると思いますよ。

VB側でクリエイトスレッドで別スレッドでやる方法もあると思うけど、安定しないと思います。



手法だけで実現するなら、EXEを分ける方法もあると思います。
  A.Exe(メイン)
  B.Exe(サブ)
  C.DLL(関数)
を用意して
  A.ExeがB.Exeをキック
  B.ExeがC.DLLを実行
  C.DLLは進捗をログ出力(メモリに吐いても可)
  A.EXEはC.DLLのログを読み取って、進捗をプログレスバーに表示
    • good
    • 0
この回答へのお礼

ありがとうございます。
DLLはVBのActiveXDLLなのですが、できれば今になってソースを触りたくないので、ログでチャレンジしてみます。
とても参考になりました。ありがとうございました。

お礼日時:2005/02/01 23:30

DLLの一つの関数の処理のすすみ具合を実際に判断する事は不可能でしょう。



プログレスバーで表示するとすれば、概算でだいたい処理に掛かる時間を想定しておいて、一定時間おきに値を更新していくしかないと思います。

その後、処理が終わればプログレスバーの値をMAXにすればいいと思います。
    • good
    • 0
この回答へのお礼

早速お答えいただきありがとうございました。

お礼日時:2005/02/01 23:27

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!