我在写一个使用.NET 2.0的c#应用程序。我需要使用旧库来进行专有压缩。我没有该库的源代码,并且它背后的开发人员已经很久没有。将DLLImport与包含空字符的输出char []一起使用
我的问题是生成的char []包含空值,并被截断。下面是该函数的声明:
[DLLImport("foo.dll")]
public static extern bool CompressString(char[] inputValue, out char[] outputValue, uint inputLength, out uint outputLength);
我如何可以声明输出的char []应该作为一个byte []来处理,而不是空值终止的?
更多信息:
我有头文件。这是声明:
BOOL CompressString(char *DecompBuff, char **RetBuff, unsigned long DecompLen, unsigned long *RetCompLen);
你难道没有一个声明'CompressString'功能或至少一些文件头文件描述函数的参数?你怎么知道签名? – 2009-12-07 17:50:05
你不应该在任何地方在你的C#代码中使用'char',而是'byte'或'sbyte'(这相当于C++'char')。 – 2009-12-07 18:24:13