本人用串口控件,编写程序时候出现的问题,在一个对话框的应用程序中插入MSCOMM32.ocx的头文件和.cpp文件,CMSCOMM.Cpp 和CMSComm.h,我并没有在对话框上直接画出控件,而是采用在程序运行是动态创建.. //=======下面是动态地创建串口对象的代码==============
DWORD style = WS_VISIBLE;
if ( m_MSComm.GetSafeHwnd() == NULL)
{
//CoInitialize(NULL); if ( !m_MSComm.Create(NULL, style, CRect(0, 0, 0, 0), this, IDC_MSCOMM))
{
//AfxMessageBox("创建串口对象失败"); //GetLastError(); 
char temp[6]; 
sprintf(temp, "%ld", GetLastError()); //格式化输出
MessageBox(temp, "Error", MB_OK); //输出在其他机器上运行时出现的错误号码14007
return; 
}
}//这段程序在我本人机器上运行的时候,没有问题,
可是当我以Release版本,移植到其他机器上运行的时候,却出现了,
错误号 14007, 我用ErrorLookup得到的解释是===> 在活动的激活上下文中没有找到任何查找密钥
请问怎么样解决这个问题??
为什么在我的机器上运行时,没有这个问题?
移植到其他机器上的时候,却不行了, ??????

解决方案 »

  1.   

    将MSCOMM32.ocx拷贝到目标机器,注册,然后就可以使用了
      

  2.   

    不行, 我试过了, 是不是软件有问题呢 ???
    本人试过了, 将MSCOMM32.ocx拷贝到System32目录下,然后, 
    运行RegSvr32 MSCOMM32.ocx, 提示注册成功,
    但是, 我在其他机器,上运行还是出现, 14007的错误信息
    ,是不是关于,MSCOMM32的版本信息,无法获得呢?
      

  3.   

    注意,本人不是直接在上面划了一个MSCOMM32的控件, 
    我是动态创建的, 对话框上并没有控件, 是在程序运行的时候, 
    创建的, 
    后来, 我把它改成用, 用控件的, 不是动态创建的, 却可以用了, 
    ?????
    奇怪, ??