VC编写的OPC 服务器编译连接后,用Kepware的客户端测试程序连接时报错! 点击:1169 | 回复:2



274312

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 8回
  • 年度积分:0
  • 历史总积分:0
  • 注册:2007年10月02日
发表于:2009-09-22 21:59:28
楼主

VC编写的OPC 服务器编译连接后,用Kepware的客户端测试程序连接时报错!

错误:CoCreateInstance:没有注册类别

请教各位大侠:用进程内COM组件创建OPC服务器时,是不是要先初始化COM库和创建COM对象?部分代码如下:

//动态链接库主函数

 

BOOL APIENTRY DllMain(HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{

switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
{
InitDeviceBuffer();

hInstance = (HMODULE)hModule;

InitParm();

InitOPCServer(hInstance, &OPCServerInfo ,
&OPCRegInfo, &VendorInfo,ReadVariant,WriteVariant);

break;
}
case DLL_THREAD_ATTACH://DLL在加载过程中要CALL多次,添加Tag操作只需一次
break;
case DLL_THREAD_DETACH:
break;
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}

/////进程内组件标准函数
STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppvOut)
{
HRESULT hr;
hr = DLL_GetClassObject(rclsid, riid, ppvOut);
if(SUCCEEDED(hr))
{
if(!bCalled)
{
LoadDeviceTag();
bCalled = true;
}
}
return hr;
}

STDAPI DllCanUnloadNow(void)
{
return DLL_CanUnloadNow();
}

STDAPI DllRegisterServer(void)
{
return DLL_RegisterServer();
}

STDAPI DllUnregisterServer(void)
{
return DLL_UnregisterServer();
}




tomyi

  • 精华:0帖
  • 求助:1帖
  • 帖子:21帖 | 233回
  • 年度积分:0
  • 历史总积分:598
  • 注册:2002年10月30日
发表于:2009-11-10 11:56:14
1楼

COM 注册如下:

1. 初始化COM

2. 进行类工厂注册

 

看看你的Server是否注册成功与否,如果不成功,检查初始化COM是否有误。

AutoCtrl

  • 精华:0帖
  • 求助:0帖
  • 帖子:57帖 | 465回
  • 年度积分:48
  • 历史总积分:2394
  • 注册:2007年3月04日
发表于:2009-12-04 14:44:52
2楼
在长三角地区寻求IPC(工控机)应用软件(VB、VC、组态软件),以及各种品牌的PLC(可编程控制器)、HMI(触摸屏)等工业自动化控制设备或系统工程的软件开发。
专业的技术团队多年的经验积累,价格合理,服务至上!详细的工程案例敬请光临我们的网站。
E-Mail: liuflamp@126.com
QQ: 532011903
Tel: 13817334515
http:// www.lflzdh.cn

热门招聘
相关主题

官方公众号

智造工程师