C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 45 を表示中)
■24163 / )  VB.NetでのHULFT送信
□投稿者/ はな (1回)-(2008/08/28(Thu) 15:39:46)

分類:[VB.NET/VB2005] 

OS:WinXP
HULFT for WindowsNT Ver5.0

いつも参考にさせていただいております。
VB.NETでHULFTの送信を行いたく、以下のように書いたのですが

「System.BadImageFormatException はハンドルされませんでした。
  Message="間違ったフォーマットのプログラムを読み込もうとしました。(HRESULT からの例外: 0x8007000B)"」
とエラーが出ます。

---------------------------------------------------
■クラス部
Public Class Hulft 
    Dim vmFileID As String
    Dim vmHostName As String
    Dim vmResend As Boolean
    Dim vmPrior As Integer
    Dim vmSync As Boolean
    Dim vmTimeOut As Integer
    Dim vmFileName As String
    Dim vmGroup As String
    Dim vmNoChkPoint As Boolean

    Sub New(ByVal fileId As String, _
            ByVal prior As Integer, _
            ByVal timeOut As Integer, _
            ByVal fileName As String, _
            ByVal group As String)
        vmFileID = fileId
        vmHostName = String.Empty
        vmResend = False
        vmPrior = prior
        vmSync = True
        vmTimeOut = timeOut
        vmFileName = fileName
        vmGroup = group
        vmNoChkPoint = False
    End Sub

    Public Overrides Function SendFile() As Integer

        ↓ここでエラー発生
        Return utlsend(vmFileID, _
                       vmHostName, _
                       CType(vmResend, System.Int32), _
                       vmPrior, _
                       CType(vmSync, System.Int32), _
                       vmTimeOut, _
                       vmFileName, _
                       vmGroup, _
                       CType(vmNoChkPoint, System.Int32))

    End Function

    <DllImport("hulapi.dll")> _
    Private Shared Function utlsend(ByVal FileID As String, _
                                ByVal HostName As String, _
                                ByVal Resend As Integer, _
                                ByVal Prior As Integer, _
                                ByVal Sync As Integer, _
                                ByVal Timeout As Long, _
                                ByVal Filename As String, _
                                ByVal Group As String, _
                                ByVal NoChkpoint As Long) As Integer

    End Function

End Class

■Form部
Public Class TestForm
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    Dim vlFileId As String = "TEST01"               '/ ファイルID
    Dim vlPrior As Integer = 50                     '/ 転送優先度
    Dim vlTimeOut As Integer = 3600                 '/ 同期転送タイムアウト値
    Dim vlFileName As String = "C:\test\TEST01"     '/ ファイル名
    Dim vlGroup As String = "TESTGR"                '/ 転送グループID

    Dim classHLFT As New TestHulft.Hulft(vlFileId, _
                                    vlPrior, _
                                    vlTimeOut, _
                                    vlFileName, _
                                    vlGroup)
    '/ ハルフト送信
    classHLFT.SendFile()

End Sub
End Class
---------------------------------------------------

既存のVB6.0のFULFT送信では同じ引数で送信が出来ることは確認しています。

下記ページより修正プログラムをダウンロードしたり
「http://support.microsoft.com/kb/928208/ja」

VB6.0とVB.NETでは型の大きさが違うせいでは?と「SendFile」の部分を

Return utlsend(vmFileID, _
               vmHostName, _
               CType(vmResend, System.Int32), _
               CType(vmPrior, System.Int16), _
               CType(vmSync, System.Int32), _
               CType(vmTimeOut, System.Int32), _
               vmFileName, _
               vmGroup, _
               CType(vmNoChkPoint, System.Int32))

などと変えてみたりもしましたが、全く同じエラーが発生します。

長くなり申し訳ありませんが、ご教授ねがいます


返信 編集キー/


管理者用

- Child Tree -