我正在使用C ++ Builder XE4和VCL Win32平台。我想设置一个将TPoint的DynamicArray作为参数的方法。以下是我的.hpp文件中的标准VCL Win32表单。我对CalcPolygonDetail()的声明正在生成错误消息:“模块NewForm中的错误:类TForm3_cpp中的错误方法声明”问题是参数DynamicArray MyPoints,有人可以展示如何正确设置此声明。谢谢。
#ifndef NewFormH
#define NewFormH
//----
#include <System.Classes.hpp>
#include <Vcl.Controls.hpp>
#include <Vcl.StdCtrls.hpp>
#include <Vcl.Forms.hpp>
#include "AdvSpin.hpp"
#include <Vcl.ComCtrls.hpp>
#include <Vcl.ExtCtrls.hpp>
#include <Vcl.Mask.hpp>
DynamicArray<TPoint> MyPoints;
//------------
class TForm3_cpp : public TForm
{
__published: // IDE-managed Components
TImage *Image1;
TLabel *Label2;
----break----
int __fastcall CalcPolygonDetail(DynamicArray<TPoint> MyPoints, bool UseScreenCoordinates );
答案 0 :(得分:0)
这个简单的文件可以很好地编译为XE5上的控制台VCL应用程序。
#include <vcl.h>
#include <windows.h>
#pragma hdrstop
#pragma argsused
#include <tchar.h>
#include <stdio.h>
DynamicArray<System::Types::TPoint> MyPoints;
void __fastcall TestFunction(DynamicArray<System::Types::TPoint> MyPoints2, bool SomeOtherParam)
{
// Do something with this.
MyPoints = MyPoints2;
}
int _tmain(int argc, _TCHAR* argv[])
{
DynamicArray<System::Types::TPoint> MyPoints3;
TestFunction(MyPoints3, true);
return 0;
}
这适合你吗?也许问题出在其他地方,因为DynamicArray定义似乎是正确的。我会创建一个类型:
typedef DynamicArray<System::Types::TPoint> TMyPoints;
特别是如果您要在代码中多次使用这种数组。但正如示例所示,即使没有它,也应该有效。