帮忙把一个vc++的类转化为delphi的类(100分)

  • 主题发起人 linke520
  • 开始时间
L

linke520

Unregistered / Unconfirmed
GUEST, unregistred user!
class import3ds
{
FILE *fp;
char *chunk;
int chunklen;
unsigned short chunkid;
int filepos,nmat;
material *matlib;
float masterscale,scale;

virtual void object3d(char *name,int nv,int nf,int ntc,float *local_axis)
{ ;
};
virtual void vertex3(float *vec)
{ ;
};
virtual void text_coord(float *uv)
{ ;
};
virtual void face3(unsigned short *fa)
{ ;
};
virtual void camera(char *name, float *pos, float *target, float bank, float lens)
{ ;
};
virtual void pointlight(char *name, float *pos,float *color)
{ ;
};
virtual void spotlight(char *name, float *pos,float *target,float *color,float hotspot,float falloff)
{ ;
};
virtual void face_material(material *mat,int nf,unsigned short *faces)
{ ; };
virtual int object_name(char *name)
{ return 1; };
int read_chunk();
void jump_chunk();
void load_chunk();
void load_object();
void load_string(char *str);
void load_light(char *objname);
void load_mesh(char *objname);
void load_mapping(struct mapping *mat);
void load_material();
public:
import3ds()
{
chunk=0;
chunklen=0;
nmat=0;
matlib=0;
masterscale=1.0f;
scale=1.0;
filepos=0;
};
~import3ds()
{
if (chunk) delete chunk;
if (matlib) delete matlib;
};
int import(char *name,float scalefactor);
};
把这个类转化为delphi类该如何转换呢?
大虾帮帮忙,多谢了!
 
太长了,按照规则一条一条转换吧
FILE *fp;=>fp:file;其他变量声明类似
char*改为string;其他指针改为pchar
virtual void object3d(char *name,int nv,int nf,int ntc,float *local_axis)
{ ;
};
=>
procedure object3d(name:string;nv,nf,ntc:integer;local_axis:pchar);virtual;
begin
end;
其他类似
import3ds() =>//构造函数
procedure Create;constructor;
begin
chunk:=0;
chunklen:=0;
nmat:=0;
matlib:=0;
masterscale:=1.0;
scale:=1.0;
filepos:=0;
end;
~import3ds() =>//析构函数
procedure Free;destructor;
begin
if (chunk<>nil) chunk.free;
if (matlib<>nil) matlib.free;
end;
 
int *x转换成delphi应该是什么呢?
是不是也是x:pchar把.能不能具体
给我解释一下pchar的功能
 
to takashiki
chunk是pchar类型的 chunk:=0;应该改成chunk:=nil;比较好
chunk.free也是不对的 如果是用getmem申请的 那么这里应该改成 freemem(chunk);
 
int *x =>x:^integer;
也可以是x:pinteger;
pinterger类型是在windows单元定义的
PInteger = System.PInteger;
我们再来看看system单元里的pinteger定义
PInteger = ^Integer;
所以还是用x:^integer;比较好
 
unsigned short chunkid;=>是不是应该变为chunkid:word?
material *matlib=>是不是应该变为
materials:array of tmaterial;
matlib:materials;
多谢指点!
 
matlib:=0;
这个应该是错误的把?
因为matlib是指向类的指针是不是应该
matlib:=tmaterial.create?
或者matlib:=nil?
 
unsigned short chunkid;=>chunkid:word;
material *matlib=>matlib:^material;
不知道你的material是什么类型的
 
ye是一个类啊!
类的初始化应该怎样呢?
不可能是matlib:=0吧
 
matlib:material;
就可以了
 
unsigned short int *x,
int *x,
float *x转化为delphi该是
什么呢?
大虾,帮忙解答一下吧!多谢了!
 
unsigned short int *x;=>x:^word;
int *x=>x:^integer;
float *x=>x:^single;
 
谢谢楼上各位大侠的指正,小弟我就改正啦,^_^,我不给分哦[:D][:D][:D][:D][:D],白吃饭的,随便顺手就写上了,^_^
 
Delphi的所有类继承自Tobject
而C++并非如此,不知各位怎么转化的?
 
void *face转化为delphi是不是
应该为face:pVariant?
float&amp;
x0转化为delphi应该是什么呢?
感谢你的指导。
 
vtlist **vt;
ftlist **ft;
这个该怎么转换呢?
 
virtual void get_bbox(boundbox *)
{ ;
};
其中,boundbox是一个类。
该如何转化为delphi呢?
 
呵呵,你是要3DS的类吧? 我给你啊!
还这么辛苦转换![:D][:D][:D][:D]
 
上次你给过我一个读3ds文件的程序,不过
你这个程序对3ds文件的处理不够完整,
有很多信息都丢失了,对了,你有关于
3ds文件格式的资料吗?能不能给我邮一点呢?
kefujun@sohu.com, 万分感谢
 
我已经给你们分配分数了,
不过还有一个问题请教,
应该是很简单的哦,所以
就免费了哦!
function EvenCrossings(Sides:integer;gu,gv:array[0..2] of single):integer;
编译错误,提示of expected,but [ found,不知道是什么原因?
难道函数的行参不能是数组?
 
顶部