• 締切済み

Vista上でのVB6.0で作成したアプリケーションの動作

VB6.0で作成したアプリケーションをVista(SP1)のCore2にインストールし、印刷処理を実行させると通常は問題ありませんが、印刷の解像度を上げる(300dpi⇒600dpi)と処理の負荷が上がるせいなのか、印刷処理が正常に行えなくなりました。 その時のプロセスを調べると正常時(300dpi)にはプロセスは1つなのが、異常時(600dpi)には2つのプロセスで印刷処理を行っているようです。 尚、アプリケーションでは印刷の解像度やマルチコア(マルチプロセス)を意識した処理は行っていません。 PCのBIOS設定でシングルコア固定にすると600dpiでも正常に動作します。 確認したい事) 1.マルチコアCPUのPC+Vistaの場合、負荷が上がると自動的にマルチコア(マルチプロセス)で処理を行うのでしょうか。 2.BIOS設定でシングルコアに変更することによってのデメリットはありますか。(当然処理効率は下がると思いますが、それ以外の問題はありますでしょうか) 3.VB6.0のアプリを作成するとき、実行するPCのCPU(シングルコア、マルチコア)の違いで何か意識しなければいけないことはありますでしょうか。 4.このような事例等を聞かれたことはありますでしょうか。 いずれか分かる部分だけでも結構ですので、ご教授下さい。 宜しく願いします。

みんなの回答

  • AKARI0418
  • ベストアンサー率67% (112/166)
回答No.3

アプリケーション上の問題ではなく、VB6.0の実行コード上の問題ということです。

参考URL:
http://www.atmarkit.co.jp/fdotnet/vblab/opensemi_01/opensemi_01_01.html
cookie0807
質問者

お礼

ご回答ありがとうございます。

  • AKARI0418
  • ベストアンサー率67% (112/166)
回答No.2

>マルチコア動作時のOSのバグなのでしょうか。 バグという認識は誤りです、作成したアプリケーションがマルチスレッドに対応していないため起こる現象と考えてください。 >(VistaではVB6.0のサポートを行っているはずですが。) Vistaはマルチコア限定のOSではありませんので、VistaではVB6.0のサポートは間違いではありません。 ただVB6.0がマルチスレッドに対応していないためというのが正しい理解ではないでしょうか。

参考URL:
http://itpro.nikkeibp.co.jp/free/NT/NEWS/20050407/1/
cookie0807
質問者

お礼

ありがとうございます。 2ページの帳票を印刷しているだけですので、特にアプリケーション(VB6)側ではマルチプロセス(マルチコア)を意識する必要もないかと思います。 OS側で処理の負荷が大きい時に1ジョブを生成する際に2つのプロセスで分割してページ毎に処理しているだけなのですが。

  • AKARI0418
  • ベストアンサー率67% (112/166)
回答No.1

<2. シングルコアに変更することによって当然処理速度は下がります。 <4. VB6.0だからこのような事例がおきるというわけではありません、私が携わったプロジェクトで使用した某会社の組み込み型パッケージソフトは.NETプラットフォームを使用したソフトでもマルチコアでは不具合が出るということで、シングルコアに変更しました。

cookie0807
質問者

お礼

ありがとうございます。 マルチコア動作時のOSのバグなのでしょうか。 (VistaではVB6.0のサポートを行っているはずですが。) 尚、今回の環境はVB6.0はSP5です。

関連するQ&A