游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4073|回复: 2

[求助][VC相关]ADO连接中CString与_bstr_t的转换问题

[复制链接]

13

主题

46

帖子

52

积分

注册会员

Rank: 2

积分
52
发表于 2007-3-22 10:22:00 | 显示全部楼层 |阅读模式
我采用了在一个对话框中设置数据库的连接字符串和用户ID密码等,所以传的值是CString。但当我把CString转成_bstr_t连接的时候就出现错误。而如果我直接输入根CString的内容一样的字符给Open函数却连接成功。不知如何解决。望各位板友帮帮我。以下这几句代码是我把CString转成_bstr_t,注释那句居说也能把CString转换成_bstr_t的。
_ConnectionPtr pConn;
pConn.CreateInstance(__uuidof(Connection));
_bstr_t conStr(m_strConnectString);
_bstr_t userStr(m_dbUserID);
_bstr_t passStr(m_dbPassword);
//pConn->Open(m_strConnectString.AllocSysString(), m_dbUserID.AllocSysString(), m_dbPassword.AllocSysString(), adConnectUnspecified);
pConn->Open(conStr, userStr, passStr, adConnectUnspecified);

15

主题

368

帖子

406

积分

中级会员

Rank: 3Rank: 3

积分
406
发表于 2007-3-22 19:21:00 | 显示全部楼层

Re:[求助][VC相关]ADO连接中CString与_bstr_t的转换问题

_bstr_和普通的string转换最需要注意的就是内存泄漏问题。
给你安全的转换方式吧。

_bstr_t tmp2;
char* tmp3 = _com_util::ConvertBSTRToString(tmp2);
delete [] tmp3;

13

主题

46

帖子

52

积分

注册会员

Rank: 2

积分
52
 楼主| 发表于 2007-3-23 12:52:00 | 显示全部楼层

Re:[求助][VC相关]ADO连接中CString与_bstr_t的转换问题

原来是内存泄漏.我明白了。谢谢
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-26 19:12

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表