安编译器错误_在将RADScene安装到RAD Studio 2010中时,如何解决致命的编译器错误?...

编辑:GLScene现在与RAD Studio XE3(包括C++ Builder)兼容。

Now there is full compatibility of GLScene with Embarcadero RAD Studio

C++Builder XE3 as in design and runtime mode.

You can download it from http://yadi.sk/d/o1QGI2KA10MK1 (95Mb)

- 来自Pal Wassail's post on the Embarcadero forum thread。

{quote:title=David M wrote:}{quote}

Hi,

I'm trying to install GLScene into RAD Studio...

David

这里是针对Delphi XE3头生成器的EMB开发人员的更简单的测试 -

1.创建VCL表格申请表

2.在Unit1.pas接口部分添加

type

TVector3f = array[0..2] of single;

TVector4f = array[0..3] of single;

function VectorAdd(const v : TVector3f; const f : Single) : TVector3f; overload;

function VectorAdd(const v : TVector4f; const f : Single) : TVector4f; overload;3.添加实施部分

function VectorAdd(const v : TVector3f; const f : Single) : TVector3f;

begin

Result[0]:=v[0]+f;

Result[1]:=v[1]+f;

Result[2]:=v[2]+f;

end;

function VectorAdd(const v : TVector4f; const f : Single) : TVector4f;

begin

Result[0]:=v[0]+f;

Result[1]:=v[1]+f;

Result[2]:=v[2]+f;

Result[3]:=v[3]+f;

end;设置Delphi编译器选项“生成C++ .objs,标题,命名空间,导出”

构建项目

然后Delphi XE3编译器生成错误的头文件Unit1.hpp:

extern PACKAGE TVector3f __fastcall VectorAdd

(float const v,const float f)/ overload * /;

extern PACKAGE TVector4f __fastcall VectorAdd

(float const v,const float f)/ overload * /;

如果您现在尝试在my.cbproj中使用此头文件Unit1.hpp,则会出现致命错误:

“E2238 ......中的多个声明”

是的,如果您将矢量数组类型更改为记录:

TVector3f = record

case boolean of

true : (Coord: array[0..2] of single);

false : (X,Y,Z: single);

end;那么问题就可以解决,因为在这种情况下Delphi编译器会生成

extern PACKAGE Vectortypes :: TVector3f __fastcall VectorAdd

(const Vectortypes :: TVector3f& v,const float f)/ * overload * /;

extern PACKAGE Vectortypes :: TVector4f __fastcall VectorAdd

(const Vectortypes :: TVector4f& v,const float f)/ * overload * /;

并且您可以在没有“多个声明”错误的情况下构建C++ Builder VCL应用程序。它是在2007年为旧的GLScene版本完成的,但是现在你需要从VectorGeometry.pas模块开始重写新库中的部分代码。

有第二种方法来修复这种自动标头的错误 - 在生成C / C++标头,命名空间和包选项中改进Delphi编译器。但它掌握在EMB开发人员手中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值