首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C#调用COM组件,可以创建对象,但是调用函数的时候抛出错误了

2013-09-06 
C#调用COM组件,可以创建对象,但是调用函数的时候抛出异常了.我的这个com组件是VC实现的,主要代码如下:idl

C#调用COM组件,可以创建对象,但是调用函数的时候抛出异常了.

我的这个com组件是VC实现的,主要代码如下:
idl文件内容:


[
object,
uuid(906AA3B5-7341-455F-B391-AD6D15087701),
pointer_default(unique)
]
interface IFun : IUnknown{
[] HRESULT Add([in] LONG n1, [in] LONG n2, [out,retval] LONG** pVal);
};
[
uuid(197CE716-F985-4C7A-B202-7FFB27E6B3A0),
version(1.0),
]

Fun.cpp中的函数实现:

STDMETHODIMP CFun::Add(LONG n1, LONG n2, LONG** pVal)
{
// TODO: Add your implementation code here
*pVal=new LONG;
**pVal=n1+n2;
return S_OK;
}

这个com组件用一个VC写的客户段调用是没有问题的,能运行。但是用我写的C#程序来调用就不行。如果我把Add函数的返回值类型改为LONG* pVal,不改变指针本身,那么VC客户端经过小修改也能运行,而我的C#调用程序还是会遇到同样的问题。
这到底是为什么呢?

还请指教!

[解决办法]
你的C代码不全,没看到你FuncClass怎么继承的IFun。
------解决方案--------------------


看你那个代码,想问接口能够实例化吗?你调用Add()应该不是那么样调用吧

热点排行