C++ 里面定义:这个类是要作为返回值的class IBean
{
public:
virtual const char* _stdcall getSessionId() = 0;
virtual const char* _stdcall getCallId() = 0;
virtual const char* _stdcall getDirection() = 0;
virtual const char* _stdcall getStateEvent() = 0;
};我在C# 里面怎么定义? 我这样定义可以接受到值, 但是字段对应不上,而且乱码。 public struct IDialogBean
{
public string getSessionId;
public string getCallId;
public string getDirection;
public string getStateEvent;
} 这样定义又会报错。 public class IDialogBean
{ public virtual string getSessionId() { return String.Empty; }
public virtual string getCallId() { return String.Empty; }
public virtual string getDirection() { return String.Empty; }
public virtual string getStateEvent() { return String.Empty; }
}
interface 和 abstract 都是不行的。 求大神指点, 我在C# 里面要怎么定义 C++ virtual const char* _stdcall getSessionId() = 0; 方法C#C++
{
public:
virtual const char* _stdcall getSessionId() = 0;
virtual const char* _stdcall getCallId() = 0;
virtual const char* _stdcall getDirection() = 0;
virtual const char* _stdcall getStateEvent() = 0;
};我在C# 里面怎么定义? 我这样定义可以接受到值, 但是字段对应不上,而且乱码。 public struct IDialogBean
{
public string getSessionId;
public string getCallId;
public string getDirection;
public string getStateEvent;
} 这样定义又会报错。 public class IDialogBean
{ public virtual string getSessionId() { return String.Empty; }
public virtual string getCallId() { return String.Empty; }
public virtual string getDirection() { return String.Empty; }
public virtual string getStateEvent() { return String.Empty; }
}
interface 和 abstract 都是不行的。 求大神指点, 我在C# 里面要怎么定义 C++ virtual const char* _stdcall getSessionId() = 0; 方法C#C++
///定义接口
public interface IBean
{
string getSessionId();
string getCallId();
string getDirection();
string getStateEvent();
}public void test()
{
IBean ib=GetIBean();//得到这个基于IBean接口的对象
string SessionId=ib.getSessionId();//得到SessionId
}
是不是还需要用什么来修饰?
[DllImport("WIND.dll", EntryPoint = "CardNoDecrypt")]
static extern int CardNo(string as_Data, StringBuilder as_CardNo);
public static string CardNo(string as_data)
{
int k = 8;
//IntPtr a = (IntPtr)System.Runtime.InteropServices.Marshal.StringToHGlobalAnsi(as_data);
StringBuilder cardno = new StringBuilder("error");
//k = CardNo(a, cardno);
k = CardNo(as_data, cardno);
//Thread.Sleep(500);
return cardno.ToString();
}
/////先给我5分吧,有问题提问。没分了呵呵呵
public ref class Bean { ... }
然后在c#工程中引用vc项目,就可以直接使用这个类了