小编Den*_* Lu的帖子

C#派生接口在C++中无法正常工作

我在C#中定义了两个接口,如下所示:

[Guid("4938540B-3DB2-452c-A061-59EC499657E7")]
[InterfaceType(ComInterfaceType.InterfaceIsDual)]
public interface IRADevice
{
   Void FA();
}

/// <summary>
/// IRADevice interface represents a given RADevice.
/// </summary>
[Guid("4938540B-3DB2-452c-A061-59EC499657E8")]
[InterfaceType(ComInterfaceType.InterfaceIsDual)]
public interface IRADevice2 : IRADevice
{
    void FB();
}
Run Code Online (Sandbox Code Playgroud)

在c ++代码中,我使用以下命令导入上面接口生成的tlb

#import "device.tlb"  raw_interfaces_only
Run Code Online (Sandbox Code Playgroud)

创建的tlh文件如下:

struct __declspec(uuid("4938540b-3db2-452c-a061-59ec499657e7"))
IRADevice : IDispatch
{
//
// Raw methods provided by interface
//

virtual HRESULT __stdcall FA ( ) = 0;
};

struct __declspec(uuid("4938540b-3db2-452c-a061-59ec499657e8"))
IRADevice2 : IDispatch
{
//
// Raw methods provided by interface
//

virtual HRESULT __stdcall FB ( …
Run Code Online (Sandbox Code Playgroud)

c# c++ com import interface

5
推荐指数
1
解决办法
413
查看次数

标签 统计

c# ×1

c++ ×1

com ×1

import ×1

interface ×1