我正在使用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);
这里,编译器给出了错误,即“类必须提供接口方法的实现”。因为在两个函数声明中传递的参数在语法上都是不同的。
是否有其他方法可以匹配库声明?
如果我删除“^”& '%'匹配库声明,然后它在代码中给出了更多错误。
答案 0 :(得分:3)
EnumNotifcationCode,EnumNotificationType和EnumNotficationReply都是enum吗?也就是说,他们是否重视类型?如果是这样,则应声明如下:
WorkspaceMessage(int workspaceToken,
String^ description,
EnumNotificationCode code,
EnumNotificationType type,
String^ source,
EnumNotificationReply% action);