关于我的组件无法注册的问题

mufengqing 2004-04-17 02:40:26
为什么我在 初始化函数CTestApp::InitInstance()里加入数据库初始化([注]// 初始化COM,创建ADO连接等操作)后,生成的.dll文件用regsrv32.exe注册不返回提示信息(提示成功或失败)。而且这个.dll文件还无法删除,提示说正在被使用,这是什么问题呀??!!
谢谢先!!!!!!!!!!1
...全文
94 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yz82 2004-04-18
  • 打赏
  • 举报
回复
不知道你看不看的懂:
Open(BSTR Computer, BSTR dbName, BSTR dbUser, BSTR dbPsw)
{
HRESULT hr;
hr = m_connection.CreateInstance("ADODB.Connection");///创建Connection对象

if(SUCCEEDED(hr))
{
string strComputer = (_bstr_t)Computer;
string strDBName = (_bstr_t)dbName;
string strDBUser = (_bstr_t)dbUser;
string strDBPsw = (_bstr_t)dbPsw;

// Network Library=DBMSSOCN;
string strConn1 = "Provider=SQLOLEDB.1;Persist Security Info=True;" ;
string strConn2 = "User ID = ";
string strConn3 = "Initial Catalog=";
string strConn4 = "Data Source =";
//string strConn7 = ",1433";
string strConn6 = "Password=";
string strConn5 = ";";
string strConn;

strConn = strConn1 + strConn2 + strDBUser +strConn5 + strConn3 + strDBName
+ strConn5 + strConn4 +strComputer + strConn5 + strConn6 + strDBPsw + strConn5;

//TCHAR *strTitle= _T("");
//USES_CONVERSION;
//strTitle = A2T(strConn.c_str());
//MessageBox(NULL, strTitle, NULL, MB_OK);

_bstr_t strBConn(strConn.c_str());

// _bstr_t strBConn("Provider=SQLOLEDB.1;Password=begin_sa;"
// "Persist Security Info=True;User ID=sa;"
// "Initial Catalog=dbPos;Data Source=GUOXP");

hr = m_connection->Open(strBConn,L"",L"", adConnectUnspecified);//adModeUnknown);///连接数据库

if (SUCCEEDED(hr))
{
hr = m_command.CreateInstance("ADODB.Command");// or hr = m_command.CreateInstance(__uuidof(Command));
if (SUCCEEDED(hr))
{
hr = m_command->putref_ActiveConnection(m_connection);
if (SUCCEEDED(hr))
hr = m_recordset.CreateInstance("ADODB.Recordset");
else
MessageBox(NULL,"Can't ADODB.Recordset","Pos Server Error!",MB_OK);
}
}
else
MessageBox(NULL,"can't Connection to DataBase...","Pos Server Error!",MB_OK);

}
else
MessageBox(NULL,"can't CreateInstance(ADODB.Connection)","Pos Server Error!",MB_OK);

return hr;
}
mufengqing 2004-04-17
  • 打赏
  • 举报
回复
晕哪?
怎么没人告诉俺哪????
mufengqing 2004-04-17
  • 打赏
  • 举报
回复
不是代码地问题吧?
mufengqing 2004-04-17
  • 打赏
  • 举报
回复
BOOL CTestApp::InitInstance()
{
// ------------------------------------------------------------------------------------------------
// 初始化COM,创建ADO连接等操作
AfxOleInit();
m_pConnection.CreateInstance(__uuidof(Connection));

// 在ADO操作中建议语句中要常用try...catch()来捕获错误信息,
// 因为它有时会经常出现一些想不到的错误。jingzhou xu
try
{
// 打开本地Access库xml.mdb
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=xml.mdb","","",adModeUnknown);

}
catch(_com_error e)
{
AfxMessageBox("数据库连接失败,确认数据库xml.mdb是否在当前路径下!");
return FALSE;
}

m_pRecordset.CreateInstance(__uuidof(Recordset));//打开记录集对象
try
{
m_pRecordset->Open("SELECT * FROM accident",//查询demotable里的所有字段
theApp.m_pConnection.GetInterfacePtr(),//获取库连接的idispatch指针
adOpenDynamic,
adLockOptimistic,
adCmdText);
}
catch(_com_error &e)
{
AfxMessageBox(e.ErrorMessage());
}



// ---------------------------------------------------------------------
return CWinApp::InitInstance();
}
itmaster 2004-04-17
  • 打赏
  • 举报
回复
把你的初始化代码贴出来看看

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧