DllCallBack stürzt ab, außer ich verschiebe das GUI

  • hallo

    folgendes script stürzt nach ein paar callback-durchläufen immer ab!
    jedoch NICHT, wenn ich im GUI in die titlebar klicke und das GUI kontinuierlich verschiebe

    solange ich das GUI verschiebe, läuft die callback-routine einwandfrei!!!

    [autoit]

    $RecordCallBack=DllCallbackRegister ("_RecordCallBack", "int", "hwnd;ptr;int;int")

    [/autoit][autoit][/autoit][autoit]

    $BASS = DllOpen(@ScriptDir & "\bass.dll")
    Global $HRecord,$cbcount=0

    [/autoit][autoit][/autoit][autoit]

    GUICreate("TestCallBack")
    GUISetState()

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    DllCall($BASS, "dword", "BASS_RecordInit", "dword", 0)
    DllCall($BASS, "dword", "BASS_RecordSetDevice", "dword", 0)
    $HRecord = DllCall($BASS, "hwnd", "BASS_RecordStart", "dword", 44100, "dword", 2, "dword", 128, "ptr", DllCallbackGetPtr($RecordCallBack), "dword", 0)

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    While 1
    sleep(50)
    WEnd

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]

    Func _RecordCallBack($hwnd,$ptr,$int1,$int2)
    Local $Ret
    $cbcount+=1
    ToolTip($cbcount & " " & $ptr & " " & $int1)
    Return 1
    EndFunc

    [/autoit]

    kann mir das bitte jemand erklären, oder mir eine lösung mitteilen?!?
    bin schon am verzweifeln...

    die dazu benötigte dll befindet sich im anhang (auch mit hilfedatei...)

    thx E

  • So - Aus!

    nach tagelangem herumprobieren hab ich nun beschlossen, die callback-routine in eine eigene dll auszulagern!
    (d.h. ich greife auf die bass.dll mittels eigener basscallback.dll zu...)

    dazu benutz ich freepascal; erste versuche haben schon funktioniert *freu*
    allerdings ist das noch sehr mühsam, weil ich seit fast 10 jahren nix mehr mit pascal gemacht hab...

    wünscht mir glück...

    solong
    E