[正确就结贴]BCB中使用一个pas单元中的类,如何new一个实例
因为最近一直在用delphi写东西,但还有BCB下的旧的工程,所以新写了一个类,为了考虑以后的重用(可以在delphi中使用),将这个pas单元加入到bcb中,自动的编译出了头文件,但现在这个类,我搞不清楚如何在bcb中new一个实例出来。
望指教。
//PAS单元在delphi中调试编译都很正常,而且没有在PAS中使用构造和析构函数
BCB工程头文件
class TForm1 : public TForm
{
__published:// IDE-managed Components
void __fastcall FormCreate(TObject *Sender);
void __fastcall FormDestroy(TObject *Sender);
private:// User declarations
public:
TXpComputerName *CurComputerName; // 在这里定义了指针 __fastcall TForm1(TComponent* Owner);
};
下面是BCB自动生成的pas头文件内容
TXPComputerName单元
头文件
// Borland C++ Builder
// Copyright (c) 1995, 2002 by Borland Software Corporation
// All rights reserved
// (DO NOT EDIT: machine generated header) 'XPComputerName.pas ' rev: 6.00
#ifndef XPComputerNameHPP
#define XPComputerNameHPP
#pragma delphiheader begin
#pragma option push -w-
#pragma option push -Vx
#include <Windows.hpp> // Pascal unit
#include <Registry.hpp> // Pascal unit
#include <SysInit.hpp> // Pascal unit
#include <System.hpp> // Pascal unit
//-- user supplied -----------------------
namespace XpComputerName
{
//-- type declarations -------------------------------------------------------
class DELPHICLASS TXpComputerName;
class PASCALIMPLEMENTATION TXpComputerName : public System::TObject
{
typedef System::TObject inherited;
private:
………//具体函数声明省略
public:
………//具体函数声明省略
public:
#pragma option push -w-inl
/* TObject.Create */ inline __fastcall TXpComputerName(void) : System::TObject() { }
#pragma option pop
#pragma option push -w-inl
/* TObject.Destroy */ inline __fastcall virtual ~TXpComputerName(void) { }
#pragma option pop
};
//-- var, const, procedure----------------------------------------
}/* namespace Xpcomputername */
using namespace XpComputerName;
#pragma option pop// -w-
#pragma option pop// -Vx
#pragma delphiheader end.
//-- end unit ----------------------------------------------------
#endif// XPComputerName
我在窗体的OnCreate事件下
CurComputerName = new TXPComputerName();
错误信息如下:
[C++ Error] Unit1.cpp(23): E2303 Type name expected
[C++ Error] Unit1.cpp(23): E2034 Cannot convert 'int * ' to 'TXpComputerName * '
[C++ Error] Unit1.cpp(23): E2379 Statement missing ;
我该如何声明这个实例
[解决办法]
除了NEW, 不知道别的了.
[解决办法]
mark
[解决办法]
mark