|
分類:[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))
などと変えてみたりもしましたが、全く同じエラーが発生します。
長くなり申し訳ありませんが、ご教授ねがいます
|