如何从C#ref类型转换为CLI \ C ++ ^%类型

时间:2011-03-08 07:25:49

标签: c++-cli

我正在使用Managed C ++(CLI \ C ++)编写应用程序。我正在使用一个用C#编写的库(.dll文件)。

在文件中我遇到了问题。

我正在实现在库中编写的接口函数。

库中函数的声明如下:

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);

这里,编译器给出了错误,即“类必须提供接口方法的实现”。因为在两个函数声明中传递的参数在语法上都是不同的。

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

如果我删除“^”& '%'匹配库声明,然后它在代码中给出了更多错误。

1 个答案:

答案 0 :(得分:3)

EnumNotifcationCode,EnumNotificationType和EnumNotficationReply都是enum吗?也就是说,他们是否重视类型?如果是这样,则应声明如下:

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