我在c ++中实现了一些函数来处理sql查询和其他东西。因为我使用相同的句柄在不同的函数中执行此操作,所以我将句柄作为参数提供(实际上我想引入对句柄的引用 - 但我是 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
);
我做错了什么?
你把&
放在参数前面。为什么?你有 3SQLHANDLE
,你需要 3SQLHANDLE
。