问题描述
下面是用delphi写的一个程序,请高手看看怎么用C#写出来啊ProcedureTReadWriteSystemCard.TGetErrorInfo(i_Error:Integer;Varstr_Error:String);Varp_Error:PChar;//pchar字符型指针相当于C#中的refcharBeginGetMem(p_Error,50);//分配大小为50个字节的内存空间GetErrorInfo(i_Error,p_Error);//这个是自定义的一个函数不用管str_Error:=String(p_Error);FreeMem(p_Error)//释放内存空间与getmem对应End;
解决方案
解决方案二:
stringGetErrorInfo(inti_Error){stringstr_err;GetErrorInfo(i_Error,refstr_err);returnstt_err;}orvoidGetErrorInfo(inti_Error,refstringstr_err){GetErrorInfo(i_Error,refstr_err);}
关键在于GetErrorInfo,这个函数向参数p_Error指向的内存写入了结果错误信息应该是这样的……
解决方案三:
delphi中定义的那个p_Error变量不要了吗
解决方案四:
引用2楼的回复:
delphi中定义的那个p_Error变量不要了吗
所以说关键看你的GetErrorInfo这个函数怎么实现了,c#内存分配不用用户操心的
解决方案五:
不知道GetErrorInfo,没有意义PChar传入string
解决方案六:
1楼和4楼你们有msn吗我msn:ouyangxue123@live.com加我详细聊啊qq也行:782796624最好还是msn公司不让用qq的
解决方案七:
GetErrorInfo这个函数是调用的dll里的函数说实话我也不知道这个函数有什么功能我不知道怎么查看dll里的函数啊我们经理给我项目的时候什么说明文档都没有
解决方案八:
引用1楼的回复:
C#codestringGetErrorInfo(inti_Error){stringstr_err;GetErrorInfo(i_Error,refstr_err);returnstt_err;}orvoidGetErrorInfo(inti_Error,refstringstr_err){GetErrorInfo……
你这第二种写法会无限递归吧
解决方案九:
该回复于2012-05-23 13:39:54被版主删除
解决方案十:
引用7楼的回复:
引用1楼的回复:C#codestringGetErrorInfo(inti_Error){stringstr_err;GetErrorInfo(i_Error,refstr_err);returnstt_err;}orvoidGetErrorInfo(inti_Error,refstringstr_err){……
呃……没注意俩名字一样了