dfkt.net
当前位置:首页 >> 把C/C++转换成DElphi >>

把C/C++转换成DElphi

function Read_Block( block:byte;KeyA,databuf:Pchar; keystyle:byte):byte;

莫非是反编译的代码?看样子for循环是遍历一个大小为2^16的int数组,起始地址是0x44a9788,int占据四个字节,所以每次增加四个字节.

第一种function cal_crc( ptr : PByte; len : Byte ) : Cardinal;var i : Byte;begin Result := 0; while len > 0 do begin i := $80; while i <> 0 do begin if Result and $8000 <> 0 then Result := ( Result shl 1 ) xor $8005 else Result := Result shl 1; if ptr^ and i <> 0

该函数的作用是将一个字节buf转换成字符串,翻译成delphi下可用的如下,仅供参考: function bytes2string(const psrc: pbyte; nsrclength: integer): string; 其实在语言转换的时候也不是完全套死的,根据具体使用可以灵活翻译

Delphi中TStringList是一个非常好用的容器,支持快速排序Sort,大小写敏感设置CaseSensitive,二分查找Find,自动实现添加Add/AddObject、删除Delete、插入Insert/InsertObject操作.详细可以参考Delphi自带的联机帮助,非常好用.

var salF: File;begin AssignFile(salF, cad); Rewrite(salF); // 这两句相当于fopen(cad, "w");end;

目前没有转换工具吧 只能手动翻译 将代码看懂后重新用Delphi写

可以转 像楼上的那位回答的一样 用 C,C++ To Delphi转换器(源码) 如果用这个工具转,会出很多问题,一些底层的函数是无法转换的(这个工具只能转化字面上的东西) 所以一般DELPHI程序员 都是人工转化C++代码为DELPHI代码

procedure copy_array(var first: ^double;var second:^double;var l:integer);var i: integer;begin for i:=0 to l-1 do (f+i)^:= (second+i)^;end;

function QTTSAudioGet(sessionID : PAnsiChar; audioLen:PDWORD; synthStatus:PInteger; errorCode:PInteger):Pointer;调用约定;external 'XXX.DLL';TTSLIBAPI 应该是调用约定或者__declspec(dllexport) 这样声明导出的.另外C++调用约定也可以在DEF文件中单独定义.你要知道一下这个调用约定是什么.把调用约定换上就好了.Delphi支持的调用约定有register,cdecl,stdcall,pascal.C++支持的有__cdecl,__stdcall,__pascal.

相关文档
网站首页 | 网站地图
All rights reserved Powered by www.dfkt.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com