我是开发人员学习/重新学习/刷新c ++
我正在进行数据库访问我有以下代码,我很难理解在这种情况下&做了什么.
SQLHENV hEnv = NULL;
if (SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &hEnv) == SQL_ERROR)
{
Run Code Online (Sandbox Code Playgroud)
如果我删除&我得到此错误.
'SQLAllocHandle' : cannot convert parameter 3 from 'SQLHENV' to 'SQLHANDLE *'
Run Code Online (Sandbox Code Playgroud)
起初我以为它只是简单地将此字段作为参考传递,但基于错误,它更像是一些如何允许它转换?
在当前示例的上下文中,&运算符用于获取变量的地址.
从错误消息中,它看起来好像SQLAllocHandle期望参数3是类型SQLHANDLE *(指向SQLHANDLE).
当你"删除"时&,你传递SQLHENV给它,它无法转换为所需的类型.但是当你是"有"的&,它的工作,因为我猜SQLHANDLE是typedef教育署SQLHENV,或SQLHENV*可转换为SQLHANDLE*因继承或其他原因.
我需要做的猜测,因为签名SQLAllocHandle和的阶级关系SQLHENV,并SQLHANDLE没有在问题中提到.
| 归档时间: |
|
| 查看次数: |
594 次 |
| 最近记录: |