Что нового

DLLCall, нужна помощь

VadimKHL

Новичок
Сообщения
155
Репутация
0
Всем добрый день!
Подскажите, что делаю не так:
Код:
Func _GetRXbyte(const $hOpenCom)
    ; Создать переменную для структуры COMSTAT.
    Local $Struct = DllStructCreate($tagCOMSTAT)
    ; Создать переменную для lpErrors.
    Local $tlpErrors = DllStructCreate("dword lpErrors")

    DllCall("kernel32.dll", "bool", "ClearCommError", "handle", $hOpenCom[0], "ptr", DllStructGetPtr($tlpErrors), "ptr", DllStructGetPtr($Struct))

    ; Считать элемент из структуры.
    Local $Temp = _CommAPI_GetCommTimeoutsElement($Struct, "cbInQue")

    ; Считать маску ошибок.
    Local $ret = DllStructGetData($tlpErrors, "lpErrors")

    MsgBox(0, "", "Recive: " & $Temp & " lpErrors: " & $ret)
    Return $Temp
EndFunc


Структуру COMSTAT получаю нормально, количество байт считывается.
А переменную lpErrors не могу считать, всегда 0.

Подскажите, что не так делаю.
Сообщение автоматически объединено:

А все, разобрался. Все работает) Просто COM порт буфер не переполнялся физически)
 
Последнее редактирование:
Верх