我用vc调用一个vb写的com组件dll。在我开发的机器上调用没有问题,但是在别的机器(没有装开发环境的机器)
CreateDispatch函数失败,我的com组件dll已经注册在那台机器上了,不知道什么原因。调用代码如下:
if(cal.CreateDispatch("calcareaz.areaclass"))   
{   
CString t = GetCurTimeStr();
this->m_ctrlListInfo.AddString("测试计算基本快和面积功能...");
CString str = "123,39\n\r124,39\n\r124,38\n\r123.3,38\n\r123.3,38.4\n\r123,38.4\n\r123,39\n\r-1,0";
this->m_ctrlListInfo.AddString("测试数据:"+str);
BSTR s = str.AllocSysString();
//try
{
CString str1 = cal.Area_Calculate(&s);
this->m_ctrlListInfo.AddString("计算结果:"+str1);
this->m_ctrlListInfo.AddString("测试成功!");
cal.ReleaseDispatch();
} }
else
{
AfxMessageBox("测试失败,CreateDispatch方法失败!\n服务不能启动。\n");
return;
}
在这之前我已经调用了AfxOleInit()方法。