谢谢两位高手,我刚查了好像是使用IntPtr类型: int CeTest( string pDllPath, string pFunctionName, uint cbInput, IntPtr pInput, out uint pcbOutput, out IntPtr ppOutput, IntPtr ppIRAPIStream, uint dwReserved); ======================= 我现在需要将C的这个函数修改成C#的,out IntPtr ppOutput是个指针,如果需要返回一个字符串,这个ppOutput如何赋值呢?研究了半天,这个指针好像只能.zero
int CeTest(uint cbInput, IntPtr pInput, out uint pcbOutput, out IntPtr ppOutput) 这个函数精简一下,前面的两个参数一个是输入字符的长度,一个是输入的字符,后面的两个参数一个是输出的字符的长度,一个是输出的字符。 比如输入“AB”,这个函数返回“Hello:AB”
pp 为一个 byte
*pp指向pp,为pp的地址
**pp指向*pp,为pp的地址的地址。一般地说,**pp 是一个二维的数组。
你照样可以用 IntPtr 类型。http://topic.csdn.net/t/20031211/12/2552240.html
int CeTest(
string pDllPath,
string pFunctionName,
uint cbInput,
IntPtr pInput,
out uint pcbOutput,
out IntPtr ppOutput,
IntPtr ppIRAPIStream,
uint dwReserved);
=======================
我现在需要将C的这个函数修改成C#的,out IntPtr ppOutput是个指针,如果需要返回一个字符串,这个ppOutput如何赋值呢?研究了半天,这个指针好像只能.zero
这个函数精简一下,前面的两个参数一个是输入字符的长度,一个是输入的字符,后面的两个参数一个是输出的字符的长度,一个是输出的字符。
比如输入“AB”,这个函数返回“Hello:AB”