none
警告メッセージについて RRS feed

  • 質問

  • お世話になります。初歩的な質問で申し訳ございません。

    Visual Studio2005 VB.netで開発をしております。
    OS:WindowsXP Pro です。

    1       Dim Filename As String="読み込みたいファイルパス"
    2       Dim ReadData() As Byte
    3       Dim FileFree As Short
    4       Dim SeekPos As Long
    5       Dim reqFile As BTRequestFile2="読み込むリクエストファイル"
    6
    7                    ReDim ReadData(reqFile.Size - 1)
    8                    SeekPos = reqFile.Pos
    9                    FileFree = FreeFile()
    10                  FileOpen(FileFree, Filename, OpenMode.Binary, OpenAccess.Read)
    11                  FileGet(FileFree, ReadData, SeekPos + 1)
    12                  FileClose(FileFree)

    上記のソースで11行目のReadDataのところで「ByRef' パラメータ 'Value' の値を、一致する引数に戻してコピーする際の、'System.Array' から 'Byte の 1 次元配列' への暗黙的な変換です。」
    と警告メッセージが表示されます。

    修正としてはReadData→ReadData(reqFile.Size - 1)
    で良いのでしょうか?
    申し訳ございませんがご教授お願いいたします。
    2009年12月3日 10:12

回答

  • こんな
    ReDim ReadData(reqFile.Size - 1)
    FileFree = FreeFile()
    FileOpen(FileFree, Filename, OpenMode.Binary, OpenAccess.Read)
    Dim ary As System.Array = System.Array.CreateInstance(GetType(Byte), ReadData.Length)
    FileGet(FileFree, ary, SeekPos + 1)
    FileClose(FileFree)
    ary.CopyTo(ReadData, 0)
    ary = Nothing
    #FileGet等はVB6時代の古いやり方なので別の方法に変えたほうがいいとは思いますが…
    2009年12月3日 10:48

すべての返信

  • こんな
    ReDim ReadData(reqFile.Size - 1)
    FileFree = FreeFile()
    FileOpen(FileFree, Filename, OpenMode.Binary, OpenAccess.Read)
    Dim ary As System.Array = System.Array.CreateInstance(GetType(Byte), ReadData.Length)
    FileGet(FileFree, ary, SeekPos + 1)
    FileClose(FileFree)
    ary.CopyTo(ReadData, 0)
    ary = Nothing
    #FileGet等はVB6時代の古いやり方なので別の方法に変えたほうがいいとは思いますが…
    2009年12月3日 10:48
  • 早速のご回答ありがとうございます。

    この方法でやってみようと思います。ありがとうございました。
    2009年12月3日 11:19
  • フォーラムオペレーターの高橋春樹です。

    gekkaさん、こんにちは。
    アドバイス有難うございました。

    グラントヒルさん、初めまして。
    MSDNフォーラムのご利用ありがとうございます。

    gekkaさんかた頂いたサンプルコードは試して頂けたでしょうか?
    今回、gekkaさんの投稿が、有用な情報だと思いましたので、
    勝手ながら、回答マークを付けさせてもらいました。
    もし、問題がありましたら、詳しい状況をお知らせして頂ければと思います。

    今後ともMSDNフォーラムをよろしくお願いします(^-^)


    マイクロソフト株式会社 フォーラム オペレーター 高橋春樹
    2009年12月10日 4:50