诗岑 2023-12-07 09:34 采纳率: 93%
浏览 29
已结题

int类型的实参与void*类型的形参不兼容

    // 申请环境句柄  
    int err = OCIEnvCreate(&envhp, OCI_THREADED | OCI_OBJECT, (dvoid*)0, nullptr, nullptr, nullptr, (size_t)0, nullptr);  
    if (err != 0) {  
        // 处理环境句柄创建错误  
        OCIErrorGet(err,(ub4)0, nullptr, nullptr, nullptr, nullptr,(dvoid**)nullptr);  
        return 1;  
    } 
  • 写回答

1条回答 默认 最新

  • Leodong. 2023-12-07 10:06
    关注

    该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索并已验证,得到内容具体如下:
    int类型的实参与void*类型的形参不兼容。在这段代码中,OCIEnvCreate函数的第三个参数是一个void*类型的指针,而err是一个int类型的变量。为了解决这个问题,可以将err转换为void*类型,然后再传递给OCIEnvCreate函数。修改后的代码如下:

    // 申请环境句柄  
    void* err_ptr = reinterpret_cast<void*>(err);
    int err = OCIEnvCreate(&envhp, OCI_THREADED | OCI_OBJECT, (dvoid*)0, nullptr, nullptr, nullptr, (size_t)0, nullptr);  
    if (err != 0) {  
        // 处理环境句柄创建错误  
        OCIErrorGet(err,(ub4)0, nullptr, nullptr, nullptr, nullptr,(dvoid**)nullptr);  
        return 1;  
    }
    

    如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月7日
  • 创建了问题 12月7日