// 申请环境句柄
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;
}
int类型的实参与void*类型的形参不兼容
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
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; }
如果以上回答对您有所帮助,点击一下采纳该答案~谢谢
解决 无用评论 打赏 举报