Error C3352: 'void ServerClass::ActionMethod(int,int,System::String ^)' :
指定的函数与委托类型'void(void)'不匹配D:\ westside \ NetSockets \ win32project \ Win32.cpp 70 1 win32project
简而言之,win32应用程序使用C#库。当win32应用程序在C#库中调用构造函数方法时,会出现上面的错误。下面是代码。我不确定我错过了什么。
win32应用程序代码
头文件
public ref class ServerClass
{
NetEvents::NetEventArgs^ args;
NetSockets::NetSocket^ server;
public:
void ActionMethod(int iCommand, int iClientIndex, System::String^ message);
void StartServer();
};
源文件
void ServerClass::ActionMethod(int iCommand, int iClientIndex, System::String^ message)
{
}
void ServerClass::StartServer()
{
server = gcnew NetSockets::NetSocket(gcnew System::Action(this, &ServerClass::ActionMethod1));
}
C#库代码
namespace NetSockets
{
public class NetSocket
{
Action<int,int,string> actClient;
public NetSocket(Action<int, int, int> action)
{
}
public NetSocket(Action<int, int, string> action)
{
this.actClient = action;
}
}
}
答案 0 :(得分:2)
System.Action
委托是一个委托类型,没有返回void的参数。
正如错误消息所示,您的功能与此不匹配。
您需要使用其他委托类型,例如Action<int, int, string>
。