调用COM组件的方法是直接在 Add Reference 对话框中选择COM选项卡,选择其中的COM服务。
如果在生成的一个应用程序(EXE)中直接添加,没问题,一切正常。
但我需要在一个DLL中调用COM,然后外部EXE程序再调用我的DLL,这个时候就会出现COM的某些函数无法调用,就会出现类似“Error HRESULT E_FAIL has been returned from a call to a COM component.”的错误。
困扰2天了,求解!
14 个解决方案
#1
顶上去,求解!
#2
学习中……
#3
外部EXE程序 是什么程序?
有没有代码?
感觉 外部这个程序是不是也要引用 com
有没有代码?
感觉 外部这个程序是不是也要引用 com
#4
如果在exe程序中调用com就没有任何问题,如果是在dll中调用就出错。
#5
在DLL中调用COM后,调用DLL的外部EXE就不需要再直接调用COM了,功能都在DLL中实现了嘛。
我想我已经表述清楚了吧。
我想我已经表述清楚了吧。
#6
在DLL中调用COM后,调用DLL的外部EXE就不需要再直接调用COM了,功能都在DLL中实现了嘛。
我想我已经表述清楚了吧。
我想我已经表述清楚了吧。
#7
在Dll中调用com组件,一般要加入组件初始化的调用。
你找到初始化comm组件的api函数,导入到你的dll工程中。
在dll中使用com组件之前,调用初始化函数。
CoInitialize
你找到初始化comm组件的api函数,导入到你的dll工程中。
在dll中使用com组件之前,调用初始化函数。
CoInitialize
#8
老兄,我根本就找不到CoInitialize,能否贴出一点代码?谢谢
#9
还是迷茫中。。。
#10
那就在EXE所在的DLL引用COM组建呗,后台调用时通过委托来实现不就行了!
#11
学习~~~`
#12
DLL都是不行的。
#13
System.Runtime.InteropServices.COMException was caught
Message=Exception from HRESULT: 0xC0040007
Source=GWOPC.NET
ErrorCode=-1073479673
Message=Exception from HRESULT: 0xC0040007
Source=GWOPC.NET
ErrorCode=-1073479673
#14
注意,我的DLL是运行在windows服务进程之中。
如果不在windows服务中运行的话,是可以通过DLL调用COM组件的。
呵呵。
如果不在windows服务中运行的话,是可以通过DLL调用COM组件的。
呵呵。
#1
顶上去,求解!
#2
学习中……
#3
外部EXE程序 是什么程序?
有没有代码?
感觉 外部这个程序是不是也要引用 com
有没有代码?
感觉 外部这个程序是不是也要引用 com
#4
如果在exe程序中调用com就没有任何问题,如果是在dll中调用就出错。
#5
在DLL中调用COM后,调用DLL的外部EXE就不需要再直接调用COM了,功能都在DLL中实现了嘛。
我想我已经表述清楚了吧。
我想我已经表述清楚了吧。
#6
在DLL中调用COM后,调用DLL的外部EXE就不需要再直接调用COM了,功能都在DLL中实现了嘛。
我想我已经表述清楚了吧。
我想我已经表述清楚了吧。
#7
在Dll中调用com组件,一般要加入组件初始化的调用。
你找到初始化comm组件的api函数,导入到你的dll工程中。
在dll中使用com组件之前,调用初始化函数。
CoInitialize
你找到初始化comm组件的api函数,导入到你的dll工程中。
在dll中使用com组件之前,调用初始化函数。
CoInitialize
#8
老兄,我根本就找不到CoInitialize,能否贴出一点代码?谢谢
#9
还是迷茫中。。。
#10
那就在EXE所在的DLL引用COM组建呗,后台调用时通过委托来实现不就行了!
#11
学习~~~`
#12
DLL都是不行的。
#13
System.Runtime.InteropServices.COMException was caught
Message=Exception from HRESULT: 0xC0040007
Source=GWOPC.NET
ErrorCode=-1073479673
Message=Exception from HRESULT: 0xC0040007
Source=GWOPC.NET
ErrorCode=-1073479673
#14
注意,我的DLL是运行在windows服务进程之中。
如果不在windows服务中运行的话,是可以通过DLL调用COM组件的。
呵呵。
如果不在windows服务中运行的话,是可以通过DLL调用COM组件的。
呵呵。