2

最近誰かが私をVB.NETに変換するのを手伝ってくれたVB6プログラムを持っています

プログラムでは、ファイルを保存するときに、Today() 関数を呼び出して取得した日付をスタンプします。

Vista で新しい VB.NET コードを実行しようとすると、 Today() の許可例外がスローされます。管理者モードで Visual Studio Express (これは 2008 Express バージョンです) を実行すると、問題は発生しませんが、すべてのユーザーに対して特別なアクセス許可なしで実行されるスタンドアロン プログラムで終了したいのは明らかです。

では、Vista の通常の VB.NET プログラムはどのようにして今日の日付を取得できるのでしょうか?

4

3 に答える 3

10

DateTime.Nowまたはを使用しDateTime.Todayます。これらは完全に管理されており、セキュリティ例外をスローするべきではありません。

、、、、などLen()の古い VB6 関数はすべて、Microsoft.VisualBasic DLL の .NET Framework に存在しLeft()ます。下位互換性を維持するために、これらはすべてアンマネージ コードで古い関数を呼び出します。アンマネージ コードは危険な場合があるため、特別なセキュリティ アクセス許可が必要です。Right()OpenFile()FreeFile()

可能な限り、新しい .NET 関数を試して使用してください。それらは通常、はるかに高速で (たとえば、ストリームを使用したファイル IO)、より安全です。

于 2008-09-15T16:39:00.487 に答える
0

Today() 関数は、Vista で適切に動作するはずです。舞台裏では単に DateTime.Today プロパティを評価しているだけなので、例外をスローするべきではありません。VB を VB.NET に移植する場合は、VB6 互換コードではなく、DateTime.Today プロパティを使用することをお勧めします。

于 2008-09-15T16:47:26.707 に答える
0

次のステートメントを試すと:

Dim result As String = Today()

予想どおり、今日の日付が表示され、Vista で VB2005 を実行しています。使用している VB のバージョンで質問を変更できますか? Today()また、例外なく機能することを確認する代わりに、次のステートメントを試していただけますか?

Dim result As String = Now()
于 2008-09-15T16:39:54.260 に答える