佚名通过本文主要向大家介绍了调用进程外服务器中的方法获取该服务器中一个接口实现的指针,为什么总是出现“内存访问无效”异常?急!!等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 调用进程外服务器中的方法获取该服务器中一个接口实现的指针,为什么总是出现“内存访问无效”异常?急!!
描述:
描述:
相关接口如下
[object,uuid(5E503B47-BB61-465e-A596-8B826C5DBEE2)]
__interface ISecond : IUnknown {
[helpstring("方法Test")] HRESULT Test([in] BSTR strMessage);
};
[
object,
uuid("359208F2-AA38-4FE8-8F2E-79006A4D58AD"),
dual, helpstring("ITest 接口"),
pointer_default(unique)
]
__interface ITest : IDispatch
{
[id(1), helpstring("方法GetSecond")] HRESULT GetSecond([out,retval] ISecond ** pOutPoint);
};
第二个接口的方法返回一个第一个接口的指针,内部如下:
STDMETHODIMP CTest::GetSecond(ISecond ** pOutPoint)
{
if(pOutPoint){
*pOutPoint=new CSecond;
}
return S_OK;
}
很简单对么?问题是我从其它进程调用,总是会出现“内存访问无效”异常,而指针值并没有改变,这是怎么回事?这个是VC7.1的Atl代码,应该没什么问题啊?代理和存根也是正常的阿?谁能解释?很急!