C# 如何调用C++ dll中的函数 5
c++中又一个函数定义定义如下:intLogout(constchar*realm,ILogoutListener*listener);其中ILogoutListener...
c++ 中又一个函数定义定义如下:
int Logout(const char* realm,ILogoutListener* listener);
其中ILogoutListener 需要被实现 void OnLogoutResult(int errorCode )方法 errorCode ==1 表示登出成功。
我想知道的是 ILoginoutListener 在C#中应该如何实现。 展开
int Logout(const char* realm,ILogoutListener* listener);
其中ILogoutListener 需要被实现 void OnLogoutResult(int errorCode )方法 errorCode ==1 表示登出成功。
我想知道的是 ILoginoutListener 在C#中应该如何实现。 展开
1个回答
展开全部
调用格式如下:
[DllImport("ex.dll", EntryPoint = "method")]
public static extern void method(int a);
其中ex.dll为C++DLL名,method为函数名, 这里的int a为C++中方法的参数转换。
例:C++DLL名:Interface.dll,函数为voidCopMemFree(void *vp);
调用格式为:
[DllImport("Interface.dll", EntryPoint = "CopMemFree")]
public static extern void CopMemFree(IntPtr vp);
其实C#调用C++dll主要就是C++与C#的参数转换比较困难。
[DllImport("ex.dll", EntryPoint = "method")]
public static extern void method(int a);
其中ex.dll为C++DLL名,method为函数名, 这里的int a为C++中方法的参数转换。
例:C++DLL名:Interface.dll,函数为voidCopMemFree(void *vp);
调用格式为:
[DllImport("Interface.dll", EntryPoint = "CopMemFree")]
public static extern void CopMemFree(IntPtr vp);
其实C#调用C++dll主要就是C++与C#的参数转换比较困难。
追问
我知道是参数转换的问题,我想说的是像下面这个方法中的 ILogoutListener* 这个参数怎么转换
int Logout(const char* realm,ILogoutListener* listener);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询