C++ cli 如何从C#ref类型转换为CLI\C++;^%类型 我正在编写一个应用程序在托管C++(CLI+C++)中。其中我使用的库(.dll文件)是用C#编写的

C++ cli 如何从C#ref类型转换为CLI\C++;^%类型 我正在编写一个应用程序在托管C++(CLI+C++)中。其中我使用的库(.dll文件)是用C#编写的,c++-cli,C++ Cli,在一个文件中,我遇到了一个问题 我正在实现库中编写的接口的功能 库中函数的声明如下所示: COMWORKSPACELib.IWorkspaceEvents.WorkspaceMessage(int, string, COMWORKSPACELib.EnumNotificationCode, COMWORKSPACELib.EnumNotificationType, string, ref COMWORKSPACELib.EnumNotificationReply); 当我在CLI\C++中编写

在一个文件中,我遇到了一个问题

我正在实现库中编写的接口的功能

库中函数的声明如下所示:

COMWORKSPACELib.IWorkspaceEvents.WorkspaceMessage(int, string, COMWORKSPACELib.EnumNotificationCode, COMWORKSPACELib.EnumNotificationType, string, ref COMWORKSPACELib.EnumNotificationReply);
当我在CLI\C++中编写相同的代码时,声明如下:

WorkspaceMessage(int workspaceToken, String ^description, EnumNotificationCode ^code, EnumNotificationType ^type, String ^source, EnumNotificationReply ^%action);
这里,编译器给我的错误是“类必须为接口方法提供实现”。因为在两个函数声明中传递的参数在语法上是不同的

是否有其他方法匹配库声明


如果我删除“^”和“%”以匹配库声明,则代码中会出现更多错误。

EnumNotificationCode、EnumNotificationType和EnumNotificationReply是否都是枚举?也就是说,它们是值类型?如果是,则应按如下方式声明:

WorkspaceMessage(int workspaceToken, 
                 String^ description, 
                 EnumNotificationCode code, 
                 EnumNotificationType type, 
                 String^ source, 
                 EnumNotificationReply% action);

EnumNotificationCode、EnumNotificationType和EnumNotificationReply是否都是枚举?也就是说,它们是值类型吗?如果是,则应按如下方式声明:

WorkspaceMessage(int workspaceToken, 
                 String^ description, 
                 EnumNotificationCode code, 
                 EnumNotificationType type, 
                 String^ source, 
                 EnumNotificationReply% action);

然后我们需要更多信息:我问你的三种Enum*类型是什么类型?返回类型是什么?你提供的信息越多,获得好答案的机会就越大。然后我们需要更多信息:我问你的三种Enum*类型是什么类型?返回类型是什么?你提供的信息越多,获得好answ的机会就越大呃。