SQLHANDLE-Parameters:函数不接受x参数(但实际上是这样)

时间:2018-05-15 08:23:00

标签: c++ parameters reference

我在c ++中实现了一些函数来处理sql-queries和东西。因为我使用相同的句柄在不同的函数中执行此操作,所以我将句柄作为参数(实际上我想要对句柄的引用 - 但我是c ++的新手,并且仍然无法理解指针背后的概念等等)。

因为错误消息说,没有带x参数的函数,但实际上有一个(也有一个前向声明),我认为,我想要的定义和用途它有些不对。

这是前瞻声明:

static HRESULT 
_OpenDatabase(
    LPCWSTR connectionString, 
    SQLHANDLE hdlStmt, 
    SQLHANDLE hdlEnv, 
    SQLHANDLE hdlConn
);

调用(将连接字符串作为输入:__ in LPCWSTR ConnectString)

SQLHANDLE hdlStmt = INVALID_HANDLE_VALUE;
SQLHANDLE hdlEnv = INVALID_HANDLE_VALUE;
SQLHANDLE hdlConn = INVALID_HANDLE_VALUE;
    hr = _OpenDatabase(
        ConnectString,
        &hdlStmt, // this might be wrong?
        &hdlEnv, // and this
        &hdlConn // and this
    );

我做错了什么?

1 个答案:

答案 0 :(得分:0)

您将&放在参数前面。为什么?您有3 SQLHANDLE,需要3 SQLHANDLE