您的位置:首页 > 编程语言 > C语言/C++

C#调用C++Dll封装时遇到的小问题

2012-06-05 16:29 447 查看
c++的一个dll,里面有个方法,无返回类型,一个输出参数(char*),两个输入参数。

调用时遇到点小问题,总结一下。

错误的调用1,直接崩溃

[DllImport("UpgradeServerDll.dll")]
public static extern void _Upgrade_GetPatchIniFile(out StringBuilder lpszFileName, int b, string c);

IniAction._Upgrade_GetPatchIniFile(out sb, 1024 * 1000 * 1000, Request["v"].ToString());


错误的调用2,无任何信息

[DllImport("UpgradeServerDll.dll")]
public static extern void _Upgrade_GetPatchIniFile([Out] string lpszFileName, int b, string c);
IniAction._Upgrade_GetPatchIniFile(mess, 1024 * 1000 * 1000, Request["v"].ToString());


正确调用:

[DllImport("UpgradeServerDll.dll")]
public static extern void _Upgrade_GetPatchIniFile([Out] StringBuilder lpszFileName, int b, string c);
StringBuilder sb = new StringBuilder(1024*1024);
IniAction._Upgrade_GetPatchIniFile(sb, 1024 * 1024 , Request["v"].ToString());
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: