> おかげさまでWinXpでのVB2010とWin7(64bit版)のVB2010でも cmmd = 119 は出来ました。
>
>
> 続けてで恐縮ですが、下記はWinXpでのVB2010では動くのですが
> Win7(64bit版)では、
> cmmd = 27 でクローズしてから Hamlog.dx0 をオープンしようとすると
> 「間違ったフォーマットのプログラムを読み込もうとしました」のエラ−が出てしまいます。(VB6ではOKだが...)
>
> どこかおかしなところがあればご指摘をお願いします。
>
>
> Structure TIDXh ' インデックスファイル用
> Dim p As Int32
> Dim fHdl As Int32
> <VBFixedArray(260), System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst:=260)> Dim Temp() As Byte
> Public Sub Initialize()
> ReDim Temp(260)
> End Sub
> End Structure
>
> Declare Function idx_open Lib "Hamlog50.dll" (ByVal s As String, ByRef p As TIDXh) As Int32
> Declare Sub idx_close Lib "Hamlog50.dll" (ByRef p As TIDXh)
> Declare Function idx_search Lib "Hamlog50.dll" (ByRef p As TIDXh, ByVal s As String, ByVal l As Int32) As Int32
> Declare Function idx_next Lib "Hamlog50.dll" (ByRef p As TIDXh) As Int32
>
> Public THindx As TIDXh
>
> (idx_open , idx_search , idx_next , idx_close も同じエラーが出る)
>
> Ret = idx_open("C:\Hamlog\Hamlog.dx0", THindx) 'DbsCallDX でQSOデータ、コールサイン順(*.DX0)
読むだけならHAMLOGとプログラムがデータをシェアのフラグを立ててれば27,28のコマンドは必要ないと思います
当方はWindows7HOME64bitですが
HAMLOG共有オープンしていない場合やってみました
Hwnd1 = FindWindow("TThwin", vbNullString)
'// Hwnd1 = FindWindow("#32770", vbNullString)
If Hwnd1 < 1 Then ' ハムログが起動していない
Exit Sub
End If
Dim cds As COPYDATASTRUCT
cmmd = 27
cds.dwData = cmmd
cbuff = vbNullString
cds.cbData = 0
cds.lpData = ""
Hwnd2 = SendMessage(Hwnd1, WM_COPYDATA, Me.Handle, cds)
Ret = idx_open("Hamlog.dx0", THindx)
Ret = idx_search(THindx, "------", 0)
-----はコールサインで
Windows764bitで動作しました
レコード番号も返ってきてます
質問のエラーが不明です
ファンクションの戻り値を質問に書くと良いんですがね