有一个数据采集设备,设备驱动提供了一个COM接口。现在要使用C#来处理。
有一个dll文件,使用regsvr32注册成功了
该如何使用这接口呢?
这样?
class Device:ICmpDevice{}
还是这样?
class Device
{
CmpDeviceClass device = new CmpDeviceClass();
// 但是这样会出现
//从 IClassFactory 为 CLSID 为 {7D7A2584-140B-4686-8D8E-FDEAE49130C2}
// 的 COM 组件创建实例失败,
//原因是出现以下错误: 80070005 拒绝访问。
//(异常来自 HRESULT:0x80070005 (E_ACCESSDENIED))。
//的错误
}
------解决思路----------------------
工程需要引用该com的dll
------解决思路----------------------
你使用C++/Cli封装下,给C#客户使用.Com对象的创建一般使用CoCreateInstance或者是类库提供的专门的创建函数
------解决思路----------------------
给设备厂家技术支持打电话,要demo
什么都不告诉,光给个sdk,鬼知道该怎么用
------解决思路----------------------
用tlbimp这个工具试试, 它可以把COM自动翻译成.Net程序集
tlbimp [com dll 文件] /out:[输出文件] //注意实际写时没有[]括号
------解决思路----------------------
那你怎么不会用?直接new 个对象出来,转成接口就可以了
------解决思路----------------------
com组件要注册的
------解决思路----------------------
安全选项都选自定义 添加一个everyone ID
选项选交互式