C#调用C++Dll封装时遇到的小问题
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());