我不知道outputdata的长度,因为output的长度,是基于我的inputdata,然后再由我调用的dll根据一定的业务逻辑,计算得到的,长度是不固定的,我调用出错的代码是 StringBuilder input = new StringBuilder(""); //根据我的逻辑处理input StringBuilder output = new StringBuilder(""); int result = CBUSINESS_HANDLE(input.toString(), output); 你的意思是 output 长度不够造成?
outputData参数你分配了吗?还是直接定义就传递了?另外:
调用方式你确定一下:是CallingConvention = CallingConvention.StdCall
还是CallingConvention = CallingConvention.Cdecl
是标准调用。。
另外改一下CharSet = CharSet.Auto,试试。CharSet = CharSet.Ansi
再简单的测试中没有问题,只要启动整个程序就出现
你把代码贴出来来吧。你能确定outputData参数的长度吗?你传递了多大的空间呢?
StringBuilder input = new StringBuilder("");
//根据我的逻辑处理input
StringBuilder output = new StringBuilder("");
int result = CBUSINESS_HANDLE(input.toString(), output);
你的意思是 output 长度不够造成?