Здравствуйте. Вот два объявления

tInit=RECORD [noalign]
dimensions:SHORTINT;
verticalAxe:SHORTINT (*
0 - x
1 - y
2 - z*);

waitedIntensity:SHORTINT; (* 6 7 8 9 10 *)
ground:SHORTINT; (* 1 2 3 *)
K0:REAL;
K1:REAL;
K2:REAL;
K3:REAL;
Kpsi:REAL;
Ag:REAL;
Av:REAL;
fix:REAL; (* quatient for manual fixing *)
how3d:SHORTINT;(*
0 - classic vector summ,
1 - p. 5.1,
2 - p. 5.2 *)
jointTypeEpsilon:REAL;

lenNodes:INTEGER;
nodes:POINTER TO ARRAY [untagged] OF INTEGER;
lenCoords:INTEGER;
coords:POINTER TO ARRAY [untagged] OF ARRAY [untagged] OF REAL;

lenMassLoadCases:INTEGER;
massLoadCases:POINTER TO ARRAY [untagged]  OF SHORTINT; (*numbers of initial dynamic loadcases*)
massLoadCasesCos:POINTER TO ARRAY [untagged] OF
ARRAY [untagged] OF REAL; (*
second param
[0] - x ,
[1] - y,
[2] -z*)

massDefType:SHORTINT(*
0 - get given masses,
1  collect  masses from static loads*);

lenMassNodes:INTEGER;
massNodes:POINTER TO ARRAY [untagged] OF INTEGER;

lenMassDirs:INTEGER;
massDirs:POINTER TO ARRAY [untagged] OF SHORTINT;

mass:POINTER TO ARRAY [untagged] OF
ARRAY [untagged] OF
ARRAY [untagged] OF REAL(* dynamic  loadcases, nodes, dirs *);

width:REAL;
howMoment:SHORTINT; (*
0 - define application node number at each level and make sums
1 - calculate and apply moment for each node *)
lenMomentNodes:INTEGER;
momentNodes:POINTER TO ARRAY [untagged] OF INTEGER;

lenUsualSeismToRotate:INTEGER;
usualSeismToRotate:POINTER TO ARRAY [untagged] OF
ARRAY [untagged] OF INTEGER (*second size is 2,
[0] - usual seismic load case,
[1] - rotate check load case*);

lenUsualSeismToStabil:INTEGER;
usualSeismToStabil:POINTER TO ARRAY [untagged] OF
ARRAY [untagged] OF INTEGER (*second size is 2,
[0] - usual seismic load case,
[1] - stability check load case longituduinal   1.0
[2] - stability check load case lateral			0.4
[3] - stability check load case longituduinal   0.4
[4] - stability check load case lateral			1.0
*)

END;

typedef struct	tInit
{
short dimensions;
short verticalAxe /*
0 - x
1 - y
2 - z*/;

short waitedIntensity; /* 6 7 8 9 10 */
short ground; /* 1 2 3 */
double K0;
double K1;
double K2;
double K3;
double Kpsi;
double Ag;
double Av;
double fix; /* quatient for manual fixing */
short how3d;/*
0 - classic vector summ,
1 - p. 5.1,
2 - p. 5.2 */
double jointTypeEpsilon;

int lenNodes;
int *nodes;
int lenCoords;
double ** coords;

int lenMassLoadCases;
short * massLoadCases; /*numbers of initial dynamic loadcases*/
double ** massLoadCasesCos; /*
second param
[0] - x ,
[1] - y,
[2] -z*/

short massDefType /*
0 - get given masses,
1  collect  masses from static loads*/;

int lenMassNodes;
int * massNodes;

int lenMassDirs;
short * massDirs;

double *** mass/* dynamic  loadcases, nodes, dirs */;

double width;
short howMoment; /*
0 - define application node number at each level and make sums
1 - calculate and apply moment for each node */
int lenMomentNodes;
int * momentNodes;

int lenUsualSeismToRotate;
int ** usualSeismToRotate /*second size is 2,
[0] - usual seismic load case,
[1] - rotate check load case*/;

int lenUsualSeismToStabil;
int ** usualSeismToStabil /*second size is 2,
[0] - usual seismic load case,
[1] - stability check load case longituduinal   1.0
[2] - stability check load case lateral			0.4
[3] - stability check load case longituduinal   0.4
[4] - stability check load case lateral			1.0
*/;

};

Эта запись передается как параметр из msvc exe в blackbox dll.
до how3d включительно данные передаются ровно, далее идет мусор.
Как правильно объявлять записи, чтобы они совпадали в аналогичными struct ?

Заранее благодарю.
С уважением,
Кубаныч.