RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-317078

Andrew Popov's questions

Martin Hope
Andrew Popov
Asked: 2022-08-16 16:18:12 +0000 UTC

QThread中的无限循环

  • 1

因此,该程序使用操纵杆工作,数据从操纵杆输出到接口并通过 Modbus 传输。为此,决定将来自操纵杆的数据接收和处理放到一个单独的线程中。一个单独的类被设计在joyhid.h:

#ifndef JOYHID_H
#define JOYHID_H

#include <QObject>
#include <cstdint>
#include "hidapi.h"

typedef struct _HID_JOYSTK_Info
{
    uint16_t              X;
    uint16_t              Y;
    uint16_t              Z;
    uint16_t              X_low;
    uint16_t              Y_low;
    uint8_t               buttons[5];
}
HID_JOYSTK_Info_TypeDef;

class JoyHID : public QObject
{
    Q_OBJECT

public:
    explicit JoyHID(QObject *parent = nullptr);

public slots:
    void joySlot();

signals:
    void joySignal(HID_JOYSTK_Info_TypeDef *obj);

private:
    void joyHIDUpdate(HID_JOYSTK_Info_TypeDef *obj);
};

#endif // JOYHID_H

它mainwindow.cpp被扔到一个单独的线程中:

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    QThread *joy_thread = new QThread;
    JoyHID *joystck = new JoyHID;
    joystck->moveToThread(joy_thread);
    connect(joy_thread, SIGNAL(started()), joystck, SLOT(joySlot()));
    connect(joystck, &JoyHID::joySignal, this, &MainWindow::uiSlot);
    joy_thread->start();
}

下面的简单代码在joyhid.cppslot中执行:joySlot()

void JoyHID::joySlot()
{
    joyHIDUpdate(&joyInfo);
    emit joySignal(&joyInfo);
}

处理了一次迭代,我得到了一次值的更新。但我需要流不断地旋转,从喜悦中更新价值观。joySlot()例如,第一个想法是放入slot while(true),但这个想法失败了。该应用程序紧紧地挂着。实际上,问题是,我的解决方案有哪些可行的替代方案,在这种情况下应用什么更好?

c++ qt
  • 2 个回答
  • 73 Views
Martin Hope
Andrew Popov
Asked: 2022-08-15 22:50:13 +0000 UTC

Qt 5 没有这样的信号

  • 0

正在开发一个类似于控制面板的应用程序。操纵杆连接到设备并进一步根据算法。在当前阶段,为了测试,我正在尝试在界面的字段上显示轴的值。我决定将数据从 USB 传输到一个单独的线程,为此案例设计了一个类,将其放入joyhid.h:

#ifndef JOYHID_H
#define JOYHID_H

#include <QObject>
#include <cstdint>
#include "hidapi.h"

typedef struct _HID_JOYSTK_Info
{
    uint16_t              X;
    uint16_t              Y;
    uint16_t              Z;
    uint16_t              X_low;
    uint16_t              Y_low;
    uint8_t               buttons[5];
}
HID_JOYSTK_Info_TypeDef;

class JoyHID : public QObject
{
    Q_OBJECT

public:
    explicit JoyHID(QObject *parent = nullptr);

public slots:
    void joySlot();

signals:
    void joySignal(HID_JOYSTK_Info_TypeDef *obj);

private:
    void joyHIDUpdate(HID_JOYSTK_Info_TypeDef *obj);
};

#endif // JOYHID_H

已注册的插槽、信号、结构用于存储和进一步使用。添加mainwindow.h了一个用于接收来自操纵杆类的信号的插槽:

public slots:
    void uiSlot(HID_JOYSTK_Info_TypeDef *obj);

我试图mainwindow.cpp让它像这样工作:

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    QThread *joy_thread = new QThread;
    JoyHID *joystck = new JoyHID;
    joystck->moveToThread(joy_thread);
    connect(joystck, SIGNAL(joySignal(HID_JOYSTK_Info_TypeDef)), this, SLOT(uiSlot(HID_JOYSTK_Info_TypeDef)));
    connect(joy_thread, SIGNAL(started()), joystck, SLOT(joySlot()));
    joy_thread->start();
}

该项目已构建并启动,但在启动期间,在控制台中,我看到:

QObject::connect: No such signal JoyHID::joySignal(HID_JOYSTK_Info_TypeDef) in ..\display\mainwindow.cpp:15
QObject::connect:  (receiver name: 'MainWindow')

而且我无法弄清楚问题是什么。在此之前,我在签名时被弄错了几次,要么忘记了什么,要么只是打字,但这里有一些不同,我很高兴听到那些知道问题可能是什么的人

c++ qt
  • 1 个回答
  • 22 Views
Martin Hope
Andrew Popov
Asked: 2022-05-23 15:38:27 +0000 UTC

STM32 USB主机+HID摇杆

  • 0

有一个基于 STM32F401CU 的开发板,来自 DevEBox,它支持 USB 主机,任务是将 HID 设备连接到它,在本例中是 Gunfighter 操纵杆。为了解决这个问题,我采用了一条简单的路径:CubeMX、USB_HOST 库,一切都在 HAL 上,如果使用鼠标和键盘,一切都会立即启动,并且通过回调USBH_HID_EventCallback,您可以显示来自设备的数据。使用操纵杆并不容易,库报告不支持该设备,为了解决这个问题,我对库进行了一些更改,重点关注来自 USBlyzer 的数据:

  1. usbh_conf.h
/*----------   -----------*/
#define USBH_MAX_NUM_ENDPOINTS      1U

/*----------   -----------*/
#define USBH_MAX_NUM_INTERFACES      1U
  1. usbh_core.c

与创建和修改 IN 频道有关的所有内容都已在此处注释掉。

  phost->gState = HOST_ENUMERATION;

  phost->Control.pipe_out = USBH_AllocPipe(phost, 0x00U);
  // phost->Control.pipe_in  = USBH_AllocPipe(phost, 0x80U);

  /* Open Control pipes */
  // USBH_OpenPipe(phost, phost->Control.pipe_in, 0x80U,
  //               phost->device.address, phost->device.speed,
  //               USBH_EP_CONTROL, (uint16_t)phost->Control.pipe_size);

  /* Open Control pipes */
  USBH_OpenPipe(phost, phost->Control.pipe_out, 0x00U,
                phost->device.address, phost->device.speed,
                USBH_EP_CONTROL, (uint16_t)phost->Control.pipe_size);
  1. usbh_hid.h

添加了定义,以便将来该功能USBH_HID_InterfaceInit可以识别快乐

/* Interface Descriptor field values for HID Boot Protocol */
#define HID_BOOT_CODE                                 0x01U
#define HID_NONE_BOOT_CODE                            0x00U
#define HID_KEYBRD_BOOT_CODE                          0x01U
#define HID_MOUSE_BOOT_CODE                           0x02U
  1. usbh_hid.c

通过 SWO 提款有几个选项

  else if (phost->device.CfgDesc.Itf_Desc[interface].bInterfaceProtocol  == HID_NONE_BOOT_CODE)
  {
    USBH_UsrLog("Non boot device found!");
  }

将协议切换为非引导

case HID_REQ_SET_PROTOCOL:
    /* set protocol */
    classReqStatus = USBH_HID_SetProtocol(phost, 1U);
    if (classReqStatus == USBH_OK)
    {
      HID_Handle->ctl_state = HID_REQ_IDL

结果,我所做的一切工作的最后一个成功点是一个函数USBH_HID_GetHIDReportDescriptor,描述符完成了,没有任何问题,但是问题开始了。说到USBH_HID_GetReport, 位于USBH_HID_Process, 我得到USBH_NOT_SUPPORTED, 事实上,故事就此结束。然后代码循环旋转HID_POLL,没有来自操纵杆的数据传给我。

从有趣的观察中,我可以注意到,如果您不对第二段进行更改,而是在函数中,USBH_HID_InterfaceInit请执行以下操作:

for (num = 0U; num < max_ep; num++)
  {
    if (phost->device.CfgDesc.Itf_Desc[interface].Ep_Desc[num].bEndpointAddress & 0x80U)
    {
      HID_Handle->InEp = (phost->device.CfgDesc.Itf_Desc[interface].Ep_Desc[num].bEndpointAddress);
      // HID_Handle->InPipe = USBH_AllocPipe(phost, HID_Handle->InEp);
      HID_Handle->InPipe = 1;

      /* Open pipe for IN endpoint */
      USBH_OpenPipe(phost, HID_Handle->InPipe, HID_Handle->InEp, phost->device.address,
                    phost->device.speed, USB_EP_TYPE_INTR, HID_Handle->length);

      USBH_LL_SetToggle(phost, HID_Handle->InPipe, 0U);
    }

然后我得到报告本身而不是报告描述符,希望我不能比任何事情更聪明,我决定循环这个动作,只是不时地通过这个请求获取我需要的数据包,但是,之后第二张收据,一切都挂在了USBH_BUSY我没有的状态和数据中。我将不胜感激有关此主题的任何想法和考虑,我还附上了来自 USBlyzer 的快乐数据:

Connection Status Device connected 
Current Configuration 1 
Speed Full (12 Mbit/s) 
Device Address 6 
Number Of Open Pipes 1 

Device Descriptor VKB-Sim Space Gunfighter L 
Offset Field Size Value Description 
0 bLength 1 12h  
1 bDescriptorType 1 01h Device 
2 bcdUSB 2 0200h USB Spec 2.0 
4 bDeviceClass 1 00h Class info in Ifc Descriptors 
5 bDeviceSubClass 1 00h  
6 bDeviceProtocol 1 00h  
7 bMaxPacketSize0 1 08h 8 bytes 
8 idVendor 2 231Dh  
10 idProduct 2 0127h  
12 bcdDevice 2 1997h 19.97 
14 iManufacturer 1 01h ". Alex Oz 2012-2020" 
15 iProduct 1 02h " VKB-Sim Space Gunfighter L " 
16 iSerialNumber 1 00h  
17 bNumConfigurations 1 01h  

Configuration Descriptor 1 Bus Powered, 500 mA
Offset Field Size Value Description 
0 bLength 1 09h  
1 bDescriptorType 1 02h Configuration 
2 wTotalLength 2 0022h  
4 bNumInterfaces 1 01h  
5 bConfigurationValue 1 01h  
6 iConfiguration 1 00h  
7 bmAttributes 1 80h Bus Powered 
 4..0: Reserved  ...00000   
 5: Remote Wakeup  ..0.....  No 
 6: Self Powered  .0......  No, Bus Powered 
 7: Reserved (set to one)
(bus-powered for 1.0)  1.......   
8 bMaxPower 1 FAh 500 mA 

Interface Descriptor 0/0 HID, 1 Endpoint
Offset Field Size Value Description 
0 bLength 1 09h  
1 bDescriptorType 1 04h Interface 
2 bInterfaceNumber 1 00h  
3 bAlternateSetting 1 00h  
4 bNumEndpoints 1 01h  
5 bInterfaceClass 1 03h HID 
6 bInterfaceSubClass 1 00h  
7 bInterfaceProtocol 1 00h  
8 iInterface 1 00h  

HID Descriptor 
Offset Field Size Value Description 
0 bLength 1 09h  
1 bDescriptorType 1 21h HID 
2 bcdHID 2 0111h 1.11 
4 bCountryCode 1 00h  
5 bNumDescriptors 1 01h  
6 bDescriptorType 1 22h Report 
7 wDescriptorLength 2 012Dh 301 bytes 

Endpoint Descriptor 81 1 In, Interrupt, 1 ms
Offset Field Size Value Description 
0 bLength 1 07h  
1 bDescriptorType 1 05h Endpoint 
2 bEndpointAddress 1 81h 1 In 
3 bmAttributes 1 03h Interrupt 
 1..0: Transfer Type  ......11  Interrupt 
 7..2: Reserved  000000..   
4 wMaxPacketSize 2 0040h 64 bytes 
6 bInterval 1 01h 1 ms 

Interface 0 HID Report Descriptor Joystick
Item Tag (Value) Raw Data 
Usage Page (Generic Desktop) 05 01  
Usage (Joystick) 09 04  
Collection (Application) A1 01  
    Usage Page (Generic Desktop) 05 01  
    Report ID (1) 85 01  
    Usage Page (Generic Desktop) 05 01  
    Usage (X) 09 30  
    Report Size (16) 75 10  
    Report Count (1) 95 01  
    Logical Minimum (0) 15 00  
    Logical Maximum (4095) 26 FF 0F  
    Physical Maximum (4095) 46 FF 0F  
    Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02  
    Usage Page (Generic Desktop) 05 01  
    Usage (Y) 09 31  
    Report Size (16) 75 10  
    Report Count (1) 95 01  
    Logical Minimum (0) 15 00  
    Logical Maximum (4095) 26 FF 0F  
    Physical Maximum (4095) 46 FF 0F  
    Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02  
    Usage Page (Generic Desktop) 05 01  
    Usage (Rx) 09 33  
    Report Size (16) 75 10  
    Report Count (1) 95 01  
    Logical Minimum (0) 15 00  
    Logical Maximum (2047) 26 FF 07  
    Physical Maximum (2047) 46 FF 07  
    Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02  
    Usage Page (Generic Desktop) 05 01  
    Usage (Ry) 09 34  
    Report Size (16) 75 10  
    Report Count (1) 95 01  
    Logical Minimum (0) 15 00  
    Logical Maximum (2047) 26 FF 07  
    Physical Maximum (2047) 46 FF 07  
    Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02  
    Usage Page (Generic Desktop) 05 01  
    Usage (Rz) 09 35  
    Report Size (16) 75 10  
    Report Count (1) 95 01  
    Logical Minimum (0) 15 00  
    Logical Maximum (2047) 26 FF 07  
    Physical Maximum (2047) 46 FF 07  
    Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02  
    Usage Page (Undefined) 05 00  
    Usage 09 00  
    Report Size (16) 75 10  
    Report Count (1) 95 01  
    Logical Minimum (0) 15 00  
    Logical Maximum (2047) 26 FF 07  
    Physical Maximum (2047) 46 FF 07  
    Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02  
    Usage Page (Generic Desktop) 05 01  
    Usage (Z) 09 32  
    Report Size (16) 75 10  
    Report Count (1) 95 01  
    Logical Minimum (0) 15 00  
    Logical Maximum (2047) 26 FF 07  
    Physical Maximum (2047) 46 FF 07  
    Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02  
    Usage Page (Undefined) 05 00  
    Usage 09 00  
    Report Size (16) 75 10  
    Report Count (1) 95 01  
    Logical Minimum (0) 15 00  
    Logical Maximum (2047) 26 FF 07  
    Physical Maximum (2047) 46 FF 07  
    Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02  
    Usage Page (Button) 05 09  
    Usage Minimum (Button 1) 19 01  
    Usage Maximum (Button 128) 2A 80 00  
    Logical Minimum (0) 15 00  
    Logical Maximum (1) 25 01  
    Report Size (1) 75 01  
    Report Count (128) 96 80 00  
    Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02  
    Usage Page (Generic Desktop) 05 01  
    Usage (Hat Switch) 09 39  
    Logical Minimum (0) 15 00  
    Logical Maximum (7) 26 07 00  
    Physical Minimum (0) 35 00  
    Physical Maximum (360) 46 68 01  
    Unit (Eng Rot: Degree) 65 14  
    Unit Exponent (1) 55 01  
    Report Size (4) 75 04  
    Report Count (1) 95 01  
    Input (Data,Var,Abs,NWrp,Lin,Pref,Null,Bit) 81 42  
    Usage (Undefined) 09 00  
    Unit (None) 65 00  
    Unit Exponent (0) 55 00  
    Report Size (4) 75 04  
    Report Count (3) 95 03  
    Input (Cnst,Ary,Abs) 81 01  
    Usage Page (Generic Desktop) 05 01  
    Usage (Undefined) 09 00  
    Report Size (16) 75 10  
    Report Count (1) 95 01  
    Input (Cnst,Ary,Abs) 81 01  
    Usage Page (Generic Desktop) 05 01  
    Usage (Undefined) 09 00  
    Report Size (16) 75 10  
    Report Count (1) 95 01  
    Input (Cnst,Ary,Abs) 81 01  
    Usage Page (Generic Desktop) 05 01  
    Usage (Undefined) 09 00  
    Report Size (16) 75 10  
    Report Count (1) 95 01  
    Input (Cnst,Ary,Abs) 81 01  
    Usage Page (Generic Desktop) 05 01  
    Usage (Undefined) 09 00  
    Report Size (8) 75 08  
    Report Count (23) 95 17  
    Input (Cnst,Ary,Abs) 81 01  
    Report ID (11) 85 0B  
    Usage Page (Generic Desktop) 05 01  
    Usage (Undefined) 09 00  
    Report Size (8) 75 08  
    Report Count (63) 95 3F  
    Input (Cnst,Ary,Abs) 81 01  
    Report ID (8) 85 08  
    Usage Page (Generic Desktop) 05 01  
    Usage (Undefined) 09 00  
    Report Size (8) 75 08  
    Report Count (63) 95 3F  
    Input (Cnst,Ary,Abs) 81 01  
    Logical Minimum (0) 15 00  
    Logical Maximum (255) 26 FF 00  
    Physical Maximum (255) 46 FF 00  
    Report ID (88) 85 58  
    Report Size (8) 75 08  
    Report Count (63) 95 3F  
    Usage (Undefined) 09 00  
    Output (Data,Var,Abs,NWrp,Lin,Pref,NNul,NVol,Bit) 91 02  
    Report ID (89) 85 59  
    Report Size (8) 75 08  
    Report Count (128) 95 80  
    Usage (Undefined) 09 00  
    Feature (Data,Var,Abs,NWrp,Lin,Pref,NNul,NVol,Bit) B1 02  
End Collection C0  

usb
  • 1 个回答
  • 10 Views
Martin Hope
Andrew Popov
Asked: 2020-03-05 18:46:16 +0000 UTC

qt.network.ssl:QSslSocket::connectToHostEncrypted:TLS 初始化失败

  • 5

存在以下类型的问题。有一个应用程序可以发出 post 和 get 请求,一切正常,但仅使用 http,但如果请求通过 https,则 Qt 抛出错误 qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS 初始化失败。谷歌搜索问题后,我发现可能没有 SSL 库,因此问题是,我在哪里可以得到这个东西以及如何将它连接到项目?我将不胜感激任何提示,以防我附上我的代码

主窗口.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_pushButton_clicked()
{
    QString A, B, C, X, Z;
    QByteArray data= "{ \"Authorization\":\"Bearer AQAAAAAGX9TiAATuwa8z\" }";
    A=ui->lineEdit->text(); //широта
    B=ui->lineEdit_2->text(); //долгота
    C=ui->lineEdit_3->text(); // масштаб
    X= "https://static-maps.yandex.ru/1.x/?ll="+B+","+A+"&z="+C+"&size=600,450&l=map"; //сначала долгота
    ui->preview->load(QUrl(X));
    ui->preview->show();

    manager = new QNetworkAccessManager();
    connect(manager, &QNetworkAccessManager::finished, this, &MainWindow::onResult);
    QNetworkRequest request(QUrl("https://mdb.api.cloud.yandex.net/managed-postgresql/v1/clusters/c9qmjpt4v23oohbuj1vu/databases/db1"));
//    manager->get(QNetworkRequest(QUrl("http://www.evileg.ru/it_example.json")));
    manager->get(request);
//    manager->post(request, data);


}

void MainWindow::onResult(QNetworkReply *reply)
{
    if(reply->error() == QNetworkReply::NoError){
        QByteArray json_data = reply->readAll();
        ui->textEdit->setPlainText(json_data)
       }
    else {
        qDebug() << "error: " << reply->error();
    }
       reply->deleteLater();
}

主窗口.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QtNetwork/QNetworkAccessManager>
#include <QtNetwork/QNetworkRequest>
#include <QtNetwork/QNetworkReply>

#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonArray>
#include <QUrlQuery>
#include <QUrl>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private slots:
    void on_pushButton_clicked();
    void onResult(QNetworkReply *reply);

private:
    Ui::MainWindow *ui;
    QNetworkAccessManager* manager;
};

#endif // MAINWINDOW_H
qt
  • 3 个回答
  • 10 Views
Martin Hope
Andrew Popov
Asked: 2020-11-28 00:03:28 +0000 UTC

激活数学协处理器 (FPU)

  • 2

在执行某个任务期间,有必要使用数学协处理器使用汇编程序命令计算一些值,并将其与用高级 PL (C++) 编写的函数计算的值进行比较。问题的本质:协处理器本身是通过汇编程序直接参与的,但是在执行一个用C++编写的函数时是否参与?这项工作是用双格式的数字完成的,即浮点数。

c++
  • 1 个回答
  • 10 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5