我用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()方法。
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()方法。
解决方案 »
- 创建CEdit 扩展类,在这个扩展类里面如何去掉边框?
- 一个困恼很久的问题,工作者线程AfxBeginThread必需传递hWnd么 更新界面用::PostMessage
- Esc退出全屏
- 关于UNICODE和多字符集的问题
- 请问VC里的控件及其相关变量可不可以用数组的形式保存?
- 给一个真的可以下载的《vc++技术内幕(第四版) 中文版》的连接,谢谢!
- 关于opengl的问题
- 求解=======时间差!!!当前时间减去一个.ini中的时间?
- 32位程序在64位机下关于系统文件属性对话框问题
- 关于线程参数传递问题求解,关心者请进!
- 难题: 怎么获取当前输入窗口! 别告诉我用GetFocus, 没有这么简单
- 怎样在listcontrol初始化的时候设置某一子项的字体颜色
请高手指教!!!!谢谢