2010年06月08日

Windows7 で VB6 は使えるのか!?

Widows7がリリースされ、爆発的な勢いで普及していますね。

Vistaの時とは大違い。どんどん導入されてます。

でも気になるのがソフトウェアの互換性。XPモードは正直どこまで使えるのかわからないし、XPが仮想化されているのはProfessional以上なので一般ユーザーには関係ない。

未だにユーザーの多いVB6ははたして使えるのか!?

・・・

答えは 使えます!

Microsoftによると、「

Visual Basic チームは、Visual Basic 6.0 アプリケーションが Windows Vista と、Windows Server 2008 および Windows 7 でも "そのまま" 動作する互換性を提供することを表明します。

だそうです。まだまだ現役でいけますね、ビバVB6!


posted by くろやん at 2010年06月08日 | Comment(0) | TrackBack(0) | ♪ VB6.0

2007年12月03日

アンサインド - UNSIGNED

アンサインド - UNSIGNED

アンサインドとは,符号にマイナス(-)をつけない形のことです.

業者の方とソフトウェアのバイト文字の取り扱いについて話をしていて,
「アンサインドをつけますか?」
としきりに聞かれました.

アンサインドは,バイト文字(0〜255)にも付けれて,つけない場合,(-128〜128)にもできる・・・らしいです.


posted by くろやん at 2007年12月03日 | Comment(0) | TrackBack(0) | ♪ VB6.0

2007年08月08日

一定時間間隔でプログラムを動かす

このページの詳細は

http://playing.ddo.jp/contents/VB6/index.php

に移動しました.m(_ _)m

*******************************

プログラムであるメソッドを1時間ごとに起動しようと思い指定時間待機するためのクラスを作成しました。
似たようなことはSleep関数で出来ますが、 VB6Sleep関数を使うと、プログラムがフリーズしたようになる問題がでます。

無限ループを起こして指定時間を待機させる方法を試しましたが、メモリ使用率が100%になってしまい問題です。

またTimer関数を使用したプログラムは、 日付変更時に問題が生じます。

以下のプログラムにより、1日以上でも一定時間ごとにプログラムを動作させることができ、また、プログラムのフリーズも起こりません。

参考にどうぞ。

 

'-- 宣言の追加  -------------------------------------------'
Public Declare Sub Sleep Lib "KERNEL32" (ByVal dwMilliseconds As Long)

Public Declare Function GetForegroundWindow Lib "user32" () As Long

Public Declare Function timeGetTime Lib "winmm.dll" () As Long

'-- クラスはここから  -------------------------------------------'
Public Sub StopTime(st As Single)
    Dim sngSt As Single
    sngSt = timeGetTime
    Do While (timeGetTime - sngSt) / 1000 < st
      Sleep (10) '10ミリ秒待機
       '** ラベルに現在時刻を表示  **********************'
      Label1.Caption = Format$(Date, "yyyy年mm月dd日 ") & Format$(Time, "hh時mm分ss秒")
sngSt)
       DoEvents
    Loop
End Sub

※timeGetTimeはシステム起動時からの時間を返しますが、 Timerは0時0分からの時刻を秒で返します。そのため、Timerでは日付変更時に0に戻ります。そのため、 指定時間待機させるプログラムではtimeGetTimeを使用しました。

※Sleep関数は待機中に全ての動作を止めてしまうため、 フリーズと同様の状態になります。Sleepを10ミリ秒と小さくし細かく待機させることで、 フリーズを解除しボタンなどを使用可能にしております。


posted by くろやん at 2007年08月08日 | Comment(0) | TrackBack(0) | ♪ VB6.0

2007年08月03日

VB6でプログラムを終了させる

VB6.0 ( Microsoft Visual Basic 6.0 )でプログラムを作成して、ようやく完成。
いざ実行ファイルを作成して使ってみたら、閉じるボタンを押してもメモリに残ってしまう。。。

今までこのような症状に悩まされていました。
できる人にはすっごく初歩的かもしれませんけど、これって入門書にはあまり書いてないんですよね。

Webで調べてもあまり載っていないので困ってる人も他にもいるのでは??

 

-----プログラム終了時にしっかりとプログラムを終わらせる方法 -------------

'***************************
'*     閉じると同時に実行         *
'***************************

Private Sub Form_Unload(Cancel As Integer)
  Set Form2 = Nothing
  Set Form3 = Nothing
  Call Unload(Me)
  End
End Sub

------------------------------------

このように書いたところ正常にメモリから削除されるようになりました。

Form_Unload(Cancel As Integer) はフォームが終了するときに呼ばれるメソッドです。
そこで、他に使用しているフォームをまず全て閉じました(念のため)
その後、自分自身のフォームを閉じて(念のため)
最後に、"End"を行いました。

"End"を入れないとメモリに残ったままになるので、この"End"がポイントでないかと思います。


posted by くろやん at 2007年08月03日 | Comment(1) | TrackBack(0) | ♪ VB6.0
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。