tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトル2005のアップグレードウィザードにつきまして
記事No3096
投稿日: 2006/02/12(Sun) 15:35
投稿者スー
[OSのVer]:Windows XP    [VBのVer]:VB.NET 2005

  再度お世話になります。
長文になりましたが VB6.0とVisulStudio2005のプログラムを記載しました。'※1〜'※3の
質問をさせてもらいましたのでよろしくお願い致します。

VB6.0では正常ですが、VB6.0→VisulStudio2005 アップグレードウィザード後VisulStudio2005
で下記の状態になります。
'※1・・・・VB6.0のメッセージボックスMsgBox (Ret) Ret=”1”でよいのですがMicrosoft
Visual Studio 2005ではRet=”0”になります。
'※2・・・・Ret の既定プロパティを解決できませんでした。 詳細についてみますがRet についての
説明が見あたりません。
'※3・・・・固定長文字列のサイズはバッファに合わせる必要がありますとありましたが既に修正さ
れていませんでしょうか?<VBFixedString(128),S・・・
以上につきましてよろしくお願い致します。

'**************
'   VB6.0
'**************

'Form1

Private Sub Form_Load()
    
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'バージョンに関する情報を取得
'
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'
Dim osvi As OSVERSIONINFO

osvi.dwOSVersionInfoSize = Len(osvi)
Ret = Api_GetVersionEx(osvi)

MsgBox (Ret) '※1   RET = 1 正常                
End Sub


'標準モジュール

'================================================================
'=  バージョンに関する情報を取得
'================================================================

Type OSVERSIONINFO
    dwOSVersionInfoSize As Long
    dwMajorVersion As Long
    dwMinorVersion As Long
    dwBuildNumber As Long
    dwPlatformId As Long
    szCSDVersion As String * 128
End Type
      
' オペレーティングシステムの種類やバージョンに関する情報を取得
Declare Function Api_GetVersionEx& Lib "kernel32" Alias "GetVersionExA&q
uot;
(lpVersionInformation As OSVERSIONINFO)

                                   ↓
                                   ↓VB6.0→VisulStudio2005 アップグレードウィザード後
                                   ↓
'Form1
'**************
'   Microsoft Visual Studio 2005
'**************
Option Strict Off
Option Explicit On
Friend Class Form1
    Inherits System.Windows.Forms.Form
    Private Sub Form1_Load(ByVal eventSender As System.Object, ByVal eventArgs As
System.EventArgs) Handles MyBase.Load
        Dim Ret As Object
        
        ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        'バージョンに関する情報を取得
        '
        ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        '
        '
        Dim osvi As OSVERSIONINFO
        
        osvi.dwOSVersionInfoSize = Len(osvi)
        '※2  UPGRADE_WARNING: オブジェクト Ret の既定プロパティを解決できませ
んでした。 詳細については、'ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?
keyword="6A50421D-15FE-4896-8A1B-2EC21E9037B2"' をクリックしてください。
        Ret = Api_GetVersionEx(osvi)
        
        MsgBox(Ret)  '※1   RET = 0 になります?
        
        
        
    End Sub

    Private Sub Text1_TextChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Text1.TextChanged

    End Sub
End Class


'標準モジュール

Option Strict Off
Option Explicit On
Module Module1
    
    '標準モジュール
    
    '================================================================
    '=  バージョンに関する情報を取得
    '================================================================
    
    Structure OSVERSIONINFO
        Dim dwOSVersionInfoSize As Integer
        Dim dwMajorVersion As Integer
        Dim dwMinorVersion As Integer
        Dim dwBuildNumber As Integer
        Dim dwPlatformId As Integer
        '※3 UPGRADE_WARNING: 固定長文字列のサイズはバッファに合わせる必要があり
ます。 詳細については、'ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?
keyword="3C1E4426-0B80-443E-B943-0627CD55D48B"' をクリックしてください。
        <VBFixedString(128),System.Runtime.InteropServices.MarshalAs
(System.Runtime.InteropServices.UnmanagedType.ByValArray,SizeConst:=128)> Public
szCSDVersion() As Char
    End Structure
    
    ' オペレーティングシステムの種類やバージョンに関する情報を取得
    'UPGRADE_WARNING: 構造体 OSVERSIONINFO に、この Declare ステートメントの引数として
マーシャリング属性を渡す必要があります。 詳細については、'ms-
help://MS.VSCC.v80/dv_commoner/local/redirect.htm?keyword="C429C3A5-5D47-4CD9-8F51-
74A1616405DC"' をクリックしてください。
    Declare Function Api_GetVersionEx Lib "kernel32"  Alias "GetVersionEx
A"(ByRef
lpVersionInformation As OSVERSIONINFO) As Integer
    
    
    'Form1
End Module

[ツリー表示へ]
タイトルRe: 2005のアップグレードウィザードにつきまして
記事No3097
投稿日: 2006/02/12(Sun) 21:09
投稿者花ちゃん
多分、構造体のサイズの取得のところあたりで間違っているのだろうと思いますが
VB2005 なら Win32 API 関数を使用しなくても簡単に取得する事ができます。

OSのバージョン情報が取得したいなら下記で取得できますよ。
hhttp://www.bcap.co.jp/hanafusa/dotnet/sys03.htm

その他、 VB6.0 からの移行について色々調べた結果を書いていますで参考に
して下さい。

hhttp://www.bcap.co.jp/hanafusa/dotnet/index.html

[ツリー表示へ]
タイトルRe^2: 2005のアップグレードウィザードにつきまして
記事No3098
投稿日: 2006/02/12(Sun) 21:48
投稿者スー
早々、ご教授願えましてお礼を申します。
日頃よりサイトVBレスキュー(花ちゃん)には大変お世話になっています。
サイト管理者:花ちゃん様から直接ご返答を頂き、この場をおかりしましてお礼を申し上げます。
NETは始めたばかりでご指導くだいました情報により手掛かりがつかめました。
今後も、よろしくお願い致します。

[ツリー表示へ]