请问VB开发了一个组件,如何用VC调用.谢谢. 本人买了一个DNS的组件,是用VB开发的,请问如何在VC下调用.在ASP中是直接注册组件就可以用的.但在VC下要怎么调用呢,请问高手,组件名:LQSL.DLL 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 先regsvr32, 然后在project => add to project => components and control => 选已注册选你已加入的组件 ASP可以用,VC当然也可以啦。1、注册组件2、在菜单Project->Add to project->Components and Controls 不行呀,注册了,可是在Project->Add to project->Components and Controls,里面找不到我注册的组件呀 或者直接将控件放入到 WINDOWS/SYSTEM32 目录下再试试看 不是吧,在那里只能插入ocx的控件,而不能加入DLL组件的呀。 使用IDispatch接口中的Invoke来调用 HRESULT hr = NULL;IDispatch* pIDispatch = NULL;wchar_t progid[] = L"Component.Test"; //组件名CLSID clsid; hr = ::CLSIDFromProgID(progid, &clsid);hr = ::CoInitialize(NULL);hr = ::CoCreateInstance(clsid, NULL, CLSCTX_INPROC_SERVER, IID_IDispatch, (void**)&pIDispatch);if (SUCCEEDED(hr)){ DISPID dispid; OLECHAR* name = L"MethodName"; //调用的函数名 hr = pIDispatch->GetIDsOfNames(IID_NULL, &name, 1, GetUserDefaultLCID(), &dispid); if (SUCCEEDED(hr)) { UINT iError = -1; VARIANT rarg; ::VariantInit(&rarg); VARIANT var[1]; ::VariantInit(&var[0]); var[0].vt = VT_I2; //参数类型 var[0].iVal = 700; //参数值 DISPPARAMS param; param.cArgs = 1; param.rgvarg = var; param.cNamedArgs = 0; param.rgdispidNamedArgs = NULL; hr = pIDispatch->Invoke(dispid, IID_NULL, GetUserDefaultLCID(), DISPATCH_METHOD, ¶m, &rarg, NULL, &iError); if (SUCCEEDED(hr)) { //调用成功 } ::VariantClear(&rarg); ::VariantClear(&var[0]); } pIDispatch->Release();} 求高手解决vs2008问题 父程序使用ShellExecute打开子程序后,被子程序关闭!? 用vc怎么做下面这个界面啊 单文档的界面中的背景图怎么弄 还有左边树型菜单? RtlMoveMemory函数怎么使用? 想继续提高,不知道看什么书 DCOM线程问题(在线等待) 如何将bmp文件转换为tif文件? 有免费使用又好用的浏览器控件吗? MFC和SDK窗口的问题 微软mfc编程方面的新闻组服务器名 Release版本和 Debug版本不一致怎么办呢? 如何在文本框中调用WINDOWS的写字板程序
1、注册组件
2、在菜单Project->Add to project->Components and Controls
IDispatch* pIDispatch = NULL;
wchar_t progid[] = L"Component.Test"; //组件名
CLSID clsid;
hr = ::CLSIDFromProgID(progid, &clsid);
hr = ::CoInitialize(NULL);
hr = ::CoCreateInstance(clsid, NULL, CLSCTX_INPROC_SERVER, IID_IDispatch, (void**)&pIDispatch);
if (SUCCEEDED(hr))
{
DISPID dispid;
OLECHAR* name = L"MethodName"; //调用的函数名
hr = pIDispatch->GetIDsOfNames(IID_NULL, &name, 1, GetUserDefaultLCID(), &dispid);
if (SUCCEEDED(hr))
{
UINT iError = -1;
VARIANT rarg;
::VariantInit(&rarg);
VARIANT var[1];
::VariantInit(&var[0]);
var[0].vt = VT_I2; //参数类型
var[0].iVal = 700; //参数值
DISPPARAMS param;
param.cArgs = 1;
param.rgvarg = var;
param.cNamedArgs = 0;
param.rgdispidNamedArgs = NULL; hr = pIDispatch->Invoke(dispid, IID_NULL, GetUserDefaultLCID(), DISPATCH_METHOD, ¶m, &rarg, NULL, &iError);
if (SUCCEEDED(hr))
{
//调用成功
}
::VariantClear(&rarg);
::VariantClear(&var[0]);
}
pIDispatch->Release();
}