delphi调用VC写的DLL时传递类指针参数有关问题

delphi调用VC写的DLL时传递类指针参数问题
在VS中代码为:
//TestClass.h
class stcTest
{
public:
 int a;
};

//DLLTEST.CPP
int CDLLTestApp::GetMya(stcTest* ss)
{
 return ss->a;
}
//main.cpp
extern "C" __declspec(dllexport) int Getya(stcTest* ss)
{
 return theApp.GetMya(ss);
}
 
delphi中代码:
//DLLTESTUNIT.PAS
stcTest = class
  public
    a: Integer;
  end;
function Getya(var ya: stcTest): Integer;cdecl;
implementation
function Getya;external 'DLLTest.dll';
调用:
var
  x: stcTest;
begin
  x := stcTest.Create;
  x.a := 3;
  ShowMessage(IntToStr(x.a));
  ShowMessage(IntToStr(Getya(x)));
  x.Free;
end;
 
这里show出来的结果二者不一样。
如果改用record类型结果就一样了。
现在问题是我在使用的DLL有类指针参数,这些类无法改成Record类型,该怎么处理?
------解决方案--------------------
stcTest = class
  public
  a: Integer;
  end;
class改成record,再加一句:
pstcTest=^stcTest;
定义时把变量定义为pstcTest即可
------解决方案--------------------
哦是一个类啊。。c++和DELPHI类有所不同,因此这两个语言之间不能进行类传递
------解决方案--------------------
class stcTest和stcTest = class的大小一样吗?