com组件相关
来源:互联网 发布:vb自动登录弹出窗口 编辑:程序博客网 时间:2024/06/11 21:05
1. com 组件调用:
CLSID clsid;
IDispatch* pDisp;
HRESULT hr = ::CLSIDFromProgID(L"MyMathComPro.MathFunc.1",&clsid);
if (FAILED(hr)) {
return ;
}
hr = ::CoCreateInstance(clsid,NULL, CLSCTX_ALL,IID_IDispatch,(LPVOID*)&pDisp);
if (FAILED(hr)) {
return ;
}
int a = 0,b = 5,c = 8;
if( pDisp )
{
CComDispatchDriverspDisp(pDisp);
VARIANT vIn[2];
vIn[0].vt =VT_INT;
vIn[0].lVal =b;
vIn[1].vt =VT_INT;
vIn[1].lVal =c;
VARIANTvRet;
HRESULThr =spDisp.InvokeN(_T("MathOut"),vIn,2, &vRet );
a = vRet.lVal;
}
客户端调用:
IDispatch*pDisp =EClientKernel::QueryService(_T("MathFunc"));
Dll要放到安装目录的service目录下面,才可以调用成功
2. com组件的编写:
STDMETHODIMP CMathFunc::MathOut(VARIANTa,VARIANTb, VARIANT*pResult)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
int out;
MathImpl::instance().MyAddFunc(VToInt(a,0),VToInt(b,0),out);
pResult->vt =VT_INT;
pResult->intVal =out;
return S_OK;
}
功能实现类:
class MathImpl
{
public:
MathImpl(void);
~MathImpl(void);
void MyAddFunc(int a, int b,int& c);
public:
static MathImpl&instance() {
static MathImpl obj;
return obj;
}
};
- Com组件相关学习
- com组件相关
- com组件相关基础知识
- C++ COM组件相关
- .Net 调用office 的COM+ 组件 需要的相关配置
- COM组件
- com组件
- COM组件:
- com组件
- COM组件
- COM组件
- COM组件
- COM组件
- com组件
- COM组件
- COM组件
- COM组件
- COM组件
- Eclipse 测试工具
- 微软等数据结构+算法面试100题(45)-- 在二元树中找出和为某一值的所有路径
- ubuntu install navicat
- 关于c++中虚函数和接口的关系区分
- iPhone 掌握蓝牙通信编程
- com组件相关
- 在后台下载图片
- C++之预处理
- 【PHP】PHP网站安全漏洞全解
- vim 列编辑
- Qt 5.0 将支持 Android
- java反射详解
- C++自增运算符的探索
- 爬虫larbin主函数说明