我用的是#import "c:\windows\system32\opcdaauto.dll" no_namespace
程序:
try
{
IOPCAutoServerPtr myServer( __uuidof(IOPCAutoServer));
}
catch(_com_error e)
{
AfxMessageBox(e.ErrorMessage());
}
跳出"没有注册类别“对话框我已经用了regsvr32 c:\windows\system32\opcdaauto.dll请问是什么问题啊????帮帮忙啊
程序:
try
{
IOPCAutoServerPtr myServer( __uuidof(IOPCAutoServer));
}
catch(_com_error e)
{
AfxMessageBox(e.ErrorMessage());
}
跳出"没有注册类别“对话框我已经用了regsvr32 c:\windows\system32\opcdaauto.dll请问是什么问题啊????帮帮忙啊
//
// Smart pointer typedef declarations
//_0.COM_SMARTPTR_TYPEDEF(IOPCAutoServer, __uuidof(IOPCAutoServer));
_COM_SMARTPTR_TYPEDEF(IOPCGroups, __uuidof(IOPCGroups));
_COM_SMARTPTR_TYPEDEF(IOPCGroup, __uuidof(IOPCGroup));
_COM_SMARTPTR_TYPEDEF(OPCItems, __uuidof(OPCItems));
_COM_SMARTPTR_TYPEDEF(OPCItem, __uuidof(OPCItem));
_COM_SMARTPTR_TYPEDEF(DIOPCGroupEvent, __uuidof(IDispatch));
_COM_SMARTPTR_TYPEDEF(DIOPCGroupsEvent, __uuidof(IDispatch));
_COM_SMARTPTR_TYPEDEF(OPCBrowser, __uuidof(OPCBrowser));
_COM_SMARTPTR_TYPEDEF(DIOPCServerEvent, __uuidof(IDispatch));//
另外我把上面那段程序的IOPCAutoServerPtr myServer( __uuidof(IOPCAutoServer));换成:
HRESULT hr;
IOPCAutoServerPtr myServer;
hr=myServer.CreateInstance( __uuidof(IOPCAutoServer)); 就跳出“没有注册类别 ” 蒋大哥,具体该怎么做???还有各位大侠一定要继续指导阿!!!
struct __declspec(uuid("28e68f92-8d75-11d1-8dc3-3c302a000000"))
/* dual interface */ IOPCAutoServer;
struct /* coclass */ OPCGroups;
struct __declspec(uuid("28e68f95-8d75-11d1-8dc3-3c302a000000"))
/* dual interface */ IOPCGroups;
struct /* coclass */ OPCGroup;
struct __declspec(uuid("28e68f96-8d75-11d1-8dc3-3c302a000000"))
/* dual interface */ IOPCGroup;
struct __declspec(uuid("28e68f98-8d75-11d1-8dc3-3c302a000000"))
/* dual interface */ OPCItems;
struct __declspec(uuid("28e68f99-8d75-11d1-8dc3-3c302a000000"))
/* dual interface */ OPCItem;
struct __declspec(uuid("28e68f97-8d75-11d1-8dc3-3c302a000000"))
/* dispinterface */ DIOPCGroupEvent;
struct __declspec(uuid("28e68f9d-8d75-11d1-8dc3-3c302a000000"))
/* dispinterface */ DIOPCGroupsEvent;
struct __declspec(uuid("28e68f94-8d75-11d1-8dc3-3c302a000000"))
/* dual interface */ OPCBrowser;
struct __declspec(uuid("28e68f93-8d75-11d1-8dc3-3c302a000000"))
/* dispinterface */ DIOPCServerEvent;
struct /* coclass */ OPCServer;//
// Smart pointer typedef declarations
//_COM_SMARTPTR_TYPEDEF(OPCItem, __uuidof(OPCItem));
_COM_SMARTPTR_TYPEDEF(OPCItems, __uuidof(OPCItems));
_COM_SMARTPTR_TYPEDEF(DIOPCGroupEvent, __uuidof(DIOPCGroupEvent));
_COM_SMARTPTR_TYPEDEF(DIOPCGroupsEvent, __uuidof(DIOPCGroupsEvent));
_COM_SMARTPTR_TYPEDEF(OPCBrowser, __uuidof(OPCBrowser));
_COM_SMARTPTR_TYPEDEF(IOPCAutoServer, __uuidof(IOPCAutoServer));
_COM_SMARTPTR_TYPEDEF(IOPCGroups, __uuidof(IOPCGroups));
_COM_SMARTPTR_TYPEDEF(IOPCGroup, __uuidof(IOPCGroup));
_COM_SMARTPTR_TYPEDEF(DIOPCServerEvent, __uuidof(DIOPCServerEvent));//
创建方法应该类似
IOPCAutoServerPtr myServer("OPC.AutoServer");
这里"OPC.AutoServer"是一个支持IOPCAutoServer接口的对象的ProgID。
IOPCAutoServerPtr myServer;
hr=myServer.CreateInstance( __uuidof(IOPCAutoServer));//这里要的是clsid不是iid,只要找到clsid即可!
试试:
HRESULT hr;
IOPCAutoServerPtr myServer;
hr=myServer.CreateInstance( __uuidof(OPCServer)); //估计就是它了,你的tlh给的不全只能猜测到这里了!