VC6.0 MFC 调用delphi写的com组件 如何创建对象调用接口
VC6.0 MFC 调用delphi写的com组件 怎么创建对象调用接口
# import "YSSDK.dll"
using namespace YSSDK; //调用
void CYsVcDemoDlg::OnCloseScreen()
{
int i;
HRESULT hresult;
CLSID clsid; //guid
CoInitialize(NULL); //初始化COM接口
hresult=CLSIDFromProgID(OLESTR("YSSDK.LEDData"), &clsid); //得到组件的CLSID
LEDData *t; //这就是我们在YSSDK.DLL中定义的类
hresult=CoCreateInstance(clsid,NULL,CLSCTX_INPROC_SERVER,__uuidof(LEDData),(LPVOID *) &t);
if(FAILED(hresult))
{
AfxMessageBox("初始化服务组件失败");
return;
}
i = t->BuildStream_ClearAll;
//如果初始化失败,弹出提示对话框后退出程序
CoUninitialize(); // 关闭COM库的联接
AfxMessageBox("调用服务组件完成");
}
delphi中调用正常:
oleLEDData: OleVariant; //类型
oleLEDData := CreateOleObject('YSSDK.LEDData');//创建对象
oleLEDData.SetVirtureClock;//使用接口
请教高手 怎么在MFC中调用com组件?
------解决方案--------------------
在.h文件里面
#import ".\\Debug\\YSSDK.dll" no_namespace
CComPtr<ILEDData> pLed; //创建ILEDData的对象
在cpp文件的OnCreate事件中:
CoInitialize(NULL);
CLSID clsid;
USES_CONVERSION;
HRESULT hr;
hr = CLSIDFromProgID(OLESTR("YSSDK.LEDData"), &clsid);
pLed.CoCreateInstance(clsid);
在cpp文件的OnCreate事件中:
pLed = NULL;
CoUninitialize();
# import "YSSDK.dll"
using namespace YSSDK; //调用
void CYsVcDemoDlg::OnCloseScreen()
{
int i;
HRESULT hresult;
CLSID clsid; //guid
CoInitialize(NULL); //初始化COM接口
hresult=CLSIDFromProgID(OLESTR("YSSDK.LEDData"), &clsid); //得到组件的CLSID
LEDData *t; //这就是我们在YSSDK.DLL中定义的类
hresult=CoCreateInstance(clsid,NULL,CLSCTX_INPROC_SERVER,__uuidof(LEDData),(LPVOID *) &t);
if(FAILED(hresult))
{
AfxMessageBox("初始化服务组件失败");
return;
}
i = t->BuildStream_ClearAll;
//如果初始化失败,弹出提示对话框后退出程序
CoUninitialize(); // 关闭COM库的联接
AfxMessageBox("调用服务组件完成");
}
delphi中调用正常:
oleLEDData: OleVariant; //类型
oleLEDData := CreateOleObject('YSSDK.LEDData');//创建对象
oleLEDData.SetVirtureClock;//使用接口
请教高手 怎么在MFC中调用com组件?
------解决方案--------------------
在.h文件里面
#import ".\\Debug\\YSSDK.dll" no_namespace
CComPtr<ILEDData> pLed; //创建ILEDData的对象
在cpp文件的OnCreate事件中:
CoInitialize(NULL);
CLSID clsid;
USES_CONVERSION;
HRESULT hr;
hr = CLSIDFromProgID(OLESTR("YSSDK.LEDData"), &clsid);
pLed.CoCreateInstance(clsid);
在cpp文件的OnCreate事件中:
pLed = NULL;
CoUninitialize();