- - PR -
vb.netのIsDate関数のバグ?
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2003-06-27 21:42
[OSのVer]:Windows xp [VBのVer]:VB.NET(.net Framework1.0.3705)
いつも参考にさせてもらっています。 質問なのですが、IsDate関数で日付の入力チェックを行っているのですが、 If IsDate(W_GENGO & W_YMD) = False Then Return False End If この時W_GENGO=H & W_YMD=15/01/33と値が入ってきた場合 「・・・の初期例外が mscorlib.dllで発生しました。正の数値が必要です」 というエラーメッセージがでてプログラムが終わってしまいます。 IsDate関数は日付のチェックを実行して、Falseかtrueを返す関数だと思うんですが なぜ強制終了してしまうのでしょうか? OLEAUT32.dllのバージョンによっては変な動きをすると書いてあったのですが、 OLEAUT32.dllのバージョンも問題ない(xpを使用の為)と思うのですが、 どなたかご存知の方がいらしゃいましたら、お願いします。 |
|
投稿日時: 2003-06-27 23:31
makuraです。
当方の環境で試してみたところ、期待した値 False を返してくれました。 他の環境で試してみることはできませんか? そのマシンだけの問題かもしれませんし。(モジュールが壊れているとか) 当方の環境 [OS] Windows XP Professional Service Pack 1a [.net Framework] 1.0.3705 |
|
投稿日時: 2003-06-28 07:48
こんにちわ。Jubeiです。
環境問題かコード上のバグ(?)の切り分けとして SDKヘルプにあるサンプルを試してみては如何でしょうか。 Dim MyDate, YourDate As Date Dim NoDate As String Dim MyCheck As Boolean MyDate = "February 12, 1969" YourDate = #2/12/1969# NoDate = "Hello" MyCheck = IsDate(MyDate) ' Returns True. MyCheck = IsDate(YourDate) ' Returns True. MyCheck = IsDate(NoDate) ' Returns False. ではでは(^^)/ |
|
投稿日時: 2003-06-29 23:14
makuraさん。Jubeiさん。ありがとうございました。
色々実験をしてみましたが、いまいち原因がわかりません。 AというPCでslhファイルから動かした時はエラーなのですが、 .exeから起動した時はエラーにはなりませんでした。 またBというPCで起動したところ、Aとまったく同じ現象でした。 ただ不思議なのは、BというPCで別のslhファイルに同じソースを書いて実行すると エラーにはなりませんでした。 (BのPCは.Net Framework1.0と.Net Framework1.1両方入っていますが、 .Net Framework1.1は使用してません) slhファイルが壊れてただけなのでしょうか? ただslhファイル自身は.dllファイルを参照してるだけだと聞いたのですが・・ .Net Frameworkの違いなのでしょうか? vb初心者なもので何か知っていましたら、情報をお願いします。 |
1
