标题:[求助]这个建立连接字符串的函数怎么出这么多错误啊???
只看楼主
九月霜
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2006-4-26
 问题点数:0 回复次数:2 
[求助]这个建立连接字符串的函数怎么出这么多错误啊???
请高手看一下下面这代码,是用来调出建立连接字符串对话框的函数,为什么我用来编译时却出现几十个错误


BOOL CMastMeter::GetConnectString(TCHAR *lpszConnectString,HWND hWndParent)
{
CComPtr<IDBPromptInitialize> pIDBPromptInitialize=NULL;
CComPtr<IDBProperties > pIDBProperties = NULL;
CComPtr<IDataInitialize> spDataInit=NULL;
CComBSTR bstrConnectString;

HRESULT hr;
// Create an instance of the Data Links component.
hr=CoCreateInstance(CLSID_DataLinks, NULL, CLSCTX_INPROC_SERVER,
IID_IDBPromptInitialize, (void **)&pIDBPromptInitialize);
if (FAILED(hr))
return FALSE;
// Prompt the user for the provider and initialization properties.
hr=pIDBPromptInitialize->PromptDataSource(NULL, hWndParent,
DBPROMPTOPTIONS_PROPERTYSHEET, 0, NULL, NULL, IID_IDBProperties,
(IUnknown **)&pIDBProperties);
if (FAILED(hr))
return FALSE;
hr = CoCreateInstance(CLSID_MSDAINITIALIZE, NULL, CLSCTX_INPROC_SERVER,
IID_IDataInitialize, (void**)&spDataInit);
if (FAILED(hr))
return FALSE;
hr=spDataInit->GetInitializationString(pIDBProperties,true,&bstrConnectString);
if (FAILED(hr))
return FALSE;
lstrcpy(lpszConnectString,(char*)_bstr_t(bstrConnectString));
return TRUE;
}

出现的错误如下:
error C3861: “PromptDataSource”: 即使使用参数相关的查找,也未找到标识符
error C2065: “IDBPromptInitialize” : 未声明的标识符
error C2955: “ATL::CComPtr” : 使用类模板需要模板参数列表
f:\vs\Vc7\atlmfc\include\atlcomcli.h(304) : 参见“ATL::CComPtr”的声明
error C2514: “ATL::CComPtr” : 类没有构造函数
f:\vs\Vc7\atlmfc\include\atlcomcli.h(304) : 参见“ATL::CComPtr”的声明
error C2262: “pIDBPromptInitialize” : 不能被销毁
error C2065: “IDBProperties” : 未声明的标识符
error C2955: “ATL::CComPtr” : 使用类模板需要模板参数列表
f:\vs\Vc7\atlmfc\include\atlcomcli.h(304) : 参见“ATL::CComPtr”的声明
error C2514: “ATL::CComPtr” : 类没有构造函数
f:\vs\Vc7\atlmfc\include\atlcomcli.h(304) : 参见“ATL::CComPtr”的声明
error C2262: “pIDBProperties” : 不能被销毁
error C2065: “IDataInitialize” : 未声明的标识符
error C2955: “ATL::CComPtr” : 使用类模板需要模板参数列表
f:\vs\Vc7\atlmfc\include\atlcomcli.h(304) : 参见“ATL::CComPtr”的声明
error C2514: “ATL::CComPtr” : 类没有构造函数
f:\vs\Vc7\atlmfc\include\atlcomcli.h(304) : 参见“ATL::CComPtr”的声明
error C2262: “spDataInit” : 不能被销毁
error C2065: “CLSID_DataLinks” : 未声明的标识符
error C2065: “IID_IDBPromptInitialize” : 未声明的标识符
error C3861: “pIDBPromptInitialize”: 即使使用参数相关的查找,也未找到标识符
error C2039: “PromptDataSource” : 不是“ATL::_NoAddRefReleaseOnCComPtr<T>”的成员
error C2065: “DBPROMPTOPTIONS_PROPERTYSHEET” : 未声明的标识符
error C2065: “IID_IDBProperties” : 未声明的标识符
error C3861: “pIDBPromptInitialize”: 即使使用参数相关的查找,也未找到标识符
error C3861: “pIDBProperties”: 即使使用参数相关的查找,也未找到标识符
error C2065: “CLSID_MSDAINITIALIZE” : 未声明的标识符
error C2065: “IID_IDataInitialize” : 未声明的标识符
error C3861: “spDataInit”: 即使使用参数相关的查找,也未找到标识符
error C2039: “GetInitializationString” : 不是“ATL::_NoAddRefReleaseOnCComPtr<T>”的成员
error C3861: “spDataInit”: 即使使用参数相关的查找,也未找到标识符
error C3861: “pIDBProperties”: 即使使用参数相关的查找,也未找到标识符
搜索更多相关主题的帖子: 函数 字符 CComPtr NULL 对话框 
2006-07-01 16:08
九月霜
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2006-4-26
得分:0 
谁能给个调出数据连接对话框的代码也行啊,上面这代码是从网上找到的,但编译错误太多,有哪位高手能给指点一下?
2006-07-03 15:28
hu4612247
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2007-7-19
得分:0 


你加上下面的头文件试下
#include <oledb.h>
#include <oledberr.h>
#include <msdaguid.h>
#include <msdasql.h>
#include <msdasc.h>

2007-07-19 13:22



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-76075-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.953521 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved