Nanahasan 2021-02-20 22:05 采纳率: 0%
浏览 174

Qt写了一个TcpServer监听端口的例子,程序可以正常运行,但是控制台总是报下面错误是怎么回事?

Error 2 in function StorageSystem::Registry::ATypeIOHandlerBase<4,0>::Read: RegGetValueW raised error 2: 系统找不到指定的文件。
Error 2 in function StorageSystem::Registry::ATypeIOHandlerBase<4,0>::Read: RegGetValueW raised error 2: 系统找不到指定的文件。
Error 2 in function StorageSystem::Registry::ATypeIOHandlerBase<4,0>::Read: RegGetValueW raised error 2: 系统找不到指定的文件。
Error 2 in function StorageSystem::Registry::ATypeIOHandlerBase<4,0>::Read: RegGetValueW raised error 2: 系统找不到指定的文件。
Error 2 in function StorageSystem::Registry::ATypeIOHandlerBase<4,0>::Read: RegGetValueW raised error 2: 系统找不到指定的文件。
Error 2 in function StorageSystem::Registry::ATypeIOHandlerBase<4,0>::Read: RegGetValueW raised error 2: 系统找不到指定的文件。
Error 2 in function StorageSystem::Registry::ATypeIOHandlerBase<4,0>::Read: RegGetValueW raised error 2: 系统找不到指定的文件。
Error 2 in function StorageSystem::Registry::ATypeIOHandlerBase<4,0>::Read: RegGetValueW raised error 2: 系统找不到指定的文件。
Error 2 in function StorageSystem::Registry::ATypeIOHandlerBase<4,0>::Read: RegGetValueW raised error 2: 系统找不到指定的文件。
Error 2 in function StorageSystem::Registry::ATypeIOHandlerBase<4,0>::Read: RegGetValueW raised error 2: 系统找不到指定的文件。
Error 2 in function StorageSystem::Registry::ATypeIOHandlerBase<4,0>::Read: RegGetValueW raised error 2: 系统找不到指定的文件。
Error 2 in function StorageSystem::Registry::ATypeIOHandlerBase<4,0>::Read: RegGetValueW raised error 2: 系统找不到指定的文件。
Error 2 in function StorageSystem::Registry::ATypeIOHandlerBase<4,0>::Read: RegGetValueW raised error 2: 系统找不到指定的文件。
Error 2 in function StorageSystem::Registry::ATypeIOHandlerBase<4,0>::Read: RegGetValueW raised error 2: 系统找不到指定的文件。
Error 2 in function StorageSystem::Registry::ATypeIOHandlerBase<4,0>::Read: RegGetValueW raised error 2: 系统找不到指定的文件。
Error 2 in function StorageSystem::Registry::ATypeIOHandlerBase<4,0>::Read: RegGetValueW raised error 2: 系统找不到指定的文件。
Error 2 in function StorageSystem::Registry::ATypeIOHandlerBase<4,0>::Read: RegGetValueW raised error 2: 系统找不到指定的文件。

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-07-24 11:34
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    这段错误信息表明在读取系统注册表值时出现了异常。具体来说,RegGetValueW函数返回了错误码2,这通常表示“系统找不到指定的文件”。

    要解决这个问题,你需要检查你的程序中是否有任何地方使用了RegGetValueW或类似的函数来读取系统注册表值。以下是一些建议:

    1. 检查StorageSystem类中的Registry对象是否正确创建并初始化。
    2. 检查Registry对象中使用的RegGetValueW方法调用是否有效。
    3. 确保你在使用RegGetValueW之前已经设置了正确的路径和键名。
    4. 在可能的情况下,尝试打印出错误消息以帮助定位问题所在。

    以下是一个简单的示例代码片段,用于演示如何使用RegGetValueW

    #include <QCoreApplication>
    #include <QFile>
    
    class Registry {
    public:
        static Registry* instance() {
            static Registry reg;
            return &reg;
        }
    
    private:
        Registry() {}
        ~Registry() {}
    
        DWORD GetValue(const wchar_t* key, const wchar_t* valueName, LPDWORD lpDataSize) {
            // 这里是实现的具体逻辑
        }
    };
    
    int main() {
        QCoreApplication app;
    
        Registry registry = Registry::instance();
    
        // 使用实例化的registry对象
    }
    
    

    在这个例子中,我们首先声明一个静态成员变量Registry::instance(),然后在构造函数中调用它来创建一个新的Registry实例。这个实例将在整个程序的生命周期内保持一致。

    当你使用Registry::instance()时,你可以调用其GetValue方法来获取系统的注册表值。注意,这个方法没有提供错误处理,所以你可能需要添加额外的错误检查逻辑来确保你的程序能够处理这些错误。

    评论

报告相同问题?