初学者,用ATL向导建立了环境,添加一新接口与接口实现类。
直接在一个CUI环境里通过COM库初始化调用可以成功,但到VB环境里就不行了,可以传递进去值,但返回不了
如
STDMETHODIMP Cleonmd5::GetInt(int *p1)
{
// TODO: Add your implementation code here
* p1 = 1000;
return S_OK;
}
就不行,为啥呢?
直接在一个CUI环境里通过COM库初始化调用可以成功,但到VB环境里就不行了,可以传递进去值,但返回不了
如
STDMETHODIMP Cleonmd5::GetInt(int *p1)
{
// TODO: Add your implementation code here
* p1 = 1000;
return S_OK;
}
就不行,为啥呢?
vb代码
Set aa = CreateObject("a.a1")
i = 100
aa.GetInt (i)
MsgBox (i)
Set aa = Nothing
在vb中调用如下:
Set aa = CreateObject("a.a1")
i = 100
i = aa.GetInt
MsgBox (i)
Set aa = Nothing
我的IDL是这样的,如果我直接加上retval可以吗?
wrong number of arguments or invalid property assignment.VB代码我没有改阿。只是把idl里改成这样了
[id(5), helpstring("method GetInt")] HRESULT GetInt([out,retval]int * p1);
有问题吗?
有没有办法这样
j = 100
i = aa.GetInt(j)