小编joh*_*co3的帖子

C++11 正则表达式多次匹配捕获组

有人可以帮助我使用 C++11 中的 JavaScript (ECMAScript) 正则表达式提取 : 和 ^ 符号之间的文本吗?我不需要捕获它hw-descriptor本身 - 但它必须存在于该行中,以便该行的其余部分被考虑进行匹配。此外:p....^, 、:m....^:u....^可以按任何顺序到达,并且必须至少有 1 个存在。

我尝试使用以下正则表达式:

static const std::regex gRegex("(?:hw-descriptor)(:[pmu](.*?)\\^)+", std::regex::icase);
Run Code Online (Sandbox Code Playgroud)

针对以下文本行:

"hw-descriptor:pTEXT1^:mTEXT2^:uTEXT3^"
Run Code Online (Sandbox Code Playgroud)

这是发布在实时 coliru上的代码。它显示了我如何尝试解决这个问题,但我只得到 1 场比赛。我需要了解如何提取与前面描述的 pm 或 u 字符相对应的 3 个潜在匹配项。

#include <iostream>
#include <string>
#include <vector>
#include <regex>

int main()
{
    static const std::regex gRegex("(?:hw-descriptor)(:[pmu](.*?)\\^)+", std::regex::icase);
    std::string foo = "hw-descriptor:pTEXT1^:mTEXT2^:uTEXT3^";
    // I seem to only get 1 match here, I was expecting 
    // to loop through each of …
Run Code Online (Sandbox Code Playgroud)

c++ regex ecmascript-5 c++11

4
推荐指数
1
解决办法
2982
查看次数

从服务线程更新JavaFX GUI

如何从JavaFX服务中安全地更新JavaFX GUI上的小部件.我记得当我使用Swing进行开发时,我曾经"稍后调用"和其他各种swing工作器实用程序,以确保在Java事件线程中安全地处理对UI的所有更新.以下是处理数据报消息的简单服务线程的示例.缺少的位是解析数据报消息的位置,并更新相应的UI小部件.正如您所看到的,服务类非常简单.

我不确定是否需要使用简单的绑定属性(如消息),或者我应该将小部件传递给我的StatusListenerService的构造函数(这可能不是最好的事情).有人可以给我一个很好的类似例子,我可以从中工作.

public class StatusListenerService extends Service<Void> {
    private final int mPortNum;

    /**
     *
     * @param aPortNum server listen port for inbound status messages
     */
    public StatusListenerService(final int aPortNum) {
        this.mPortNum = aPortNum;
    }

    @Override
    protected Task<Void> createTask() {
        return new Task<Void>() {
            @Override
            protected Void call() throws Exception {
                updateMessage("Running...");
                try {
                    DatagramSocket serverSocket = new DatagramSocket(mPortNum);
                    // allocate space for received datagrams
                    byte[] bytes = new byte[512];
                    //message.setByteBuffer(ByteBuffer.wrap(bytes), 0);
                    DatagramPacket packet = new DatagramPacket(bytes, bytes.length);                    
                    while (!isCancelled()) …
Run Code Online (Sandbox Code Playgroud)

java multithreading javafx

3
推荐指数
1
解决办法
1404
查看次数

部署的 Qt 应用程序 QtWebEngineProcess 无法加载 Qt5Core.dll

我需要帮助才能将 Qt 5.14.1 x64 应用程序正确部署到客户端的 Windows 10 PC。该应用程序使用QtWebEngineProcess在选项卡式界面窗口之一中显示谷歌地图。

这曾经工作正常,直到 Visual Studio 2019(当前最新版本 16.4.5)更新或 QT 版本从先前版本更新 - 我认为使用版本 5.13.2。我无法判断哪个更改导致了错误。

问题是当应用程序在客户端的 PC 上启动时(没有 Visual Studio 或 Qt)。当我双击该应用程序时,它会暂停几秒钟,最终弹出一个对话框,表明找不到 Qt5Core.dll。(与应用程序位于同一文件夹中),不久之后它会显示另一个对话框,错误代码为 0xc0000022。

它们与从我的主应用程序可执行文件 (app739.exe) 实例化的子进程 (QtWebEngineProcess.exe) 相关联。

将工作(之前的)版本与当前工作版本进行比较,我注意到存在一个新的 DLL 依赖项VCRUNTIME140_1.dll。这似乎与异常处理有关,但是 QtWebEngineProcess.exe 没有将此 dll 列为依赖项。

该应用程序的部署如下:

F:\Common\coffey\CoPilotTesterV23.0\app739.exe 64 bit, release executable
Adding Qt5Svg for qsvgicon.dll
Skipping plugin qmldbg_debugger.dll due to disabled dependencies (Qt5Qml).
Skipping plugin qmldbg_inspector.dll due to disabled dependencies (Qt5Qml Qt5Quick).
Skipping plugin qmldbg_local.dll due to disabled dependencies (Qt5Qml).
Skipping plugin …
Run Code Online (Sandbox Code Playgroud)

c++ deployment qt

3
推荐指数
1
解决办法
5122
查看次数

如何使用 howardhinnant 的 C++ 日期库格式化 UTC 时间字符串

有人可以帮助我使用 Howard Hinnant 优秀的日期/时间库格式化日期字符串吗?我正在尝试输出当前时间的 UTC 日期。所需的日期/时间格式是祖鲁时间:

“2018-11-01T15:32:56Z” - 即“YYYY-MM-DDTHH:MM:SSZ” -

到目前为止,使用霍华德的文档,我能够得到部分结果,如下所示:

const auto today = floor<days>(system_clock::now());
auto dateTimeString = std::format("{}T{:02}:{:02}:{:02}Z", today, 15, 20, 59);
Run Code Online (Sandbox Code Playgroud)

我必须对 HH MM 和 SS 字段进行硬编码。我确信在这个库中有一种简单的方法来格式化自定义日期/时间。任何帮助表示赞赏。

c++ date c++-chrono

3
推荐指数
1
解决办法
875
查看次数

using protobuf reflection to get a boolean field descriptor in c++

I am using grpc in a C++ application. On the client side, I need to reflectively query a boolean value from a message using reflection.

响应消息如下所示。不幸的是,我看不到 bool mAP 字段的字段描述符 - 但是我可以看到字符串字段的 FieldDescriptors,我做错了什么?

约翰

message Response {
    // OTP Connection Status
    enum OTPConnStatus {
        Disconnected              = 0;
        Connected                 = 1;
        InvalidCS                 = 2;
        DiscRequest               = 3;
    }

    // define the fields
    RXMessageType mMessageType    = 1;
    bool mAP                      = 2;
    OTPConnStatus mCS1            = 3;
    OTPConnStatus mCS2            = 4;
    OTPConnStatus mCS3            = 5; …
Run Code Online (Sandbox Code Playgroud)

c++ reflection descriptor protocol-buffers

2
推荐指数
1
解决办法
3349
查看次数

gcc 4.9.1将c ++局部变量绑定到const auto ref

我发现了最令人讨厌的绑定问题,似乎是GCC特有的.我不确定这是不是我不理解const auto&绑定规则,或者问题是否指向gcc编译器特定的bug.相比之下,Visual Studio 2015的C++编译器(撰写本文时的更新2)并未表现出这种不可预测的行为.我能够通过简约的现场coliru演示重现问题.

如果我将自动变量绑定到'const auto&',则会出现问题.在这种情况下,似乎const auto&绑定变量绑定到垃圾.如果这是用户错误(我不理解规则),有人可以解释有关我应该如何做到避免这种意外行为的规则.现场演示展示了我遇到错误的一个例子,我不确定这个问题是否可能在其他地方发生,因为我倾向于尽可能使用const auto&绑定.

OptPairWrapper wrapper;
wrapper.setOptPair(std::make_pair(1,2));
const auto& badConstAutoRefBind = wrapper.getOptPair().get();
const auto goodConstAutoBind = wrapper.getOptPair().get();
// This line prints garbage
std::cout << badConstAutoRefBind << std::endl;  
// This line predictably prints (1,2)
std::cout << goodConstAutoBind << std::endl;  
Run Code Online (Sandbox Code Playgroud)

产生了以下输出

g++ -std=c++14 -O2 -Wall -pedantic -pthread main.cpp -lrt && ./a.out
(32767, 0)
(1, 2)
Run Code Online (Sandbox Code Playgroud)

c++ gcc c++11 c++14

0
推荐指数
1
解决办法
128
查看次数