在类中将函数作为参数传递时出错

奥古斯·卡根(Oguz Kagan)

我正在尝试使用ESPAsyncWebServer做一些事情我在ServerManager.h中有一个名为MyServerManager的类。当我编译代码时,出现此错误。我究竟做错了什么?我该如何解决?

25:67是粗体字“ this

src \ ServerManager.cpp:在lambda函数中:src \ ServerManager.cpp:25:67:错误:此lambda函数request-> send(LittleFS,“ /status.html”,String(), false,[ this ](const String&var)-> String {return statusProcessor(var);});

*** [.pio \ build \ nodemcuv2 \ src \ ServerManager.cpp.o]错误1

在ServerManager.cpp文件中

void MyServerManager::init()
{
    if (!LittleFS.begin())
    {
        Serial.println("Something went wrong while begin LittleFS");
    }

    server->on("/", HTTP_GET, [](AsyncWebServerRequest *request) {
        request->send(LittleFS, "/status.html", String(), false, [this](const String &var) -> String { return statusProcessor(var); });
    });
    server->begin();
}

String MyServerManager::statusProcessor(const String &var)
{
    if (var == "NETWORK_NAME")
    {
        return WiFi.SSID();
    }
    else if (var == "SIGNAL_STRENGTH")
    {
        return String(WiFi.RSSI()) + " dBm";
    }

    return String();
}

在ServerManager.h文件中

#ifndef ServerManager_h
#define ServerManager_h
#include <Arduino.h>
#include <ESPAsyncWebServer.h>

class MyServerManager
{
private:
    AsyncWebServer *server = NULL;
    AsyncWebSocket *ws = NULL;
    void notifyClients(const String *msg);
    void handleWebSocketMessage(void *arg, uint8_t *data, size_t len);
    void onEvent(AsyncWebSocket *server, AsyncWebSocketClient *client, AwsEventType type, void *arg, uint8_t *data, size_t len);
    void initWebSocket();
    String statusProcessor(const String &var);

public:
    MyServerManager(uint16_t port, const String url);
    ~MyServerManager();

    void init();
};

#endif
雪碧

尝试添加this到外部lambda捕获列表:

void MyServerManager::init()
{
    if (!LittleFS.begin())
    {
        Serial.println("Something went wrong while begin LittleFS");
    }
    //                       > vvvv <
    server->on("/", HTTP_GET, [this](AsyncWebServerRequest *request) {
        request->send(LittleFS, "/status.html", String(), false, [this](const String &var) -> String { return statusProcessor(var); });
    });
    server->begin();
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在bash中将数组作为函数参数传递时出错

来自分类Dev

在C ++中将函数作为参数传递时出错

来自分类Dev

在函数中将常量类作为参数传递

来自分类Dev

在C中将2维数组作为函数参数传递时出错

来自分类Dev

在VBA中将命名范围作为参数传递时出错

来自分类Dev

如何在Admin类中将函数作为参数传递

来自分类Dev

我可以在函数中将类作为参数传递吗?

来自分类Dev

将 SKNode 作为函数参数传递时出错

来自分类Dev

在Ruby中将类作为参数传递

来自分类Dev

将ContainerInterface作为参数传递时出错

来自分类Dev

将“ const”作为“ this”参数传递时出错

来自分类Dev

在F#中将函数作为参数传递

来自分类Dev

在C中将函数作为参数传递的问题

来自分类Dev

在Swift中将函数作为参数传递

来自分类Dev

在Scala / Figaro中将函数作为参数传递

来自分类Dev

在C函数中将结构作为参数传递

来自分类Dev

在C ++中将数组作为函数参数传递

来自分类Dev

在R中将if语句作为函数参数传递

来自分类Dev

在Netlogo中将函数作为参数传递

来自分类Dev

在C函数中将结构作为参数传递

来自分类Dev

在R中将if语句作为函数参数传递

来自分类Dev

在python函数中将列作为参数传递

来自分类Dev

在 PHP 中将数组作为函数的参数传递

来自分类Dev

在 C++ 中将函数作为参数传递

来自分类Dev

传递将小数作为参数输出的函数时出错,但不直接传递float

来自分类Dev

将类方法作为函数参数传递

来自分类Dev

将函数作为类中的参数传递

来自分类Dev

在类之间传递函数作为参数

来自分类Dev

在构造函数方法中将类的所有属性作为参数传递是否有意义?

Related 相关文章

热门标签

归档