Hi Werner, Thank you for your answer. I checked it and I know that the
dynamicdata function is causing the error in TRNSYS. I send you the function of the TRNSYS
header file and the part of the code where it calls the that function (it’s
the example which is explained in the TRNSYS manual). extern
"C" __declspec(dllimport) void _cdecl DYNAMICDATA(int*
lu,int* nind,int
nx[],int* ny,double
x[],double y[],int
info[],int* n); ... int nind = 2; int nx[2]; int ny = 2; double x[2]; double y[2]; int n=0; ... nx[0] = 3; //3
values of second variable in file nx[1] = 2; //2
values of first variable in file X[0] = T_evap; //input1 x[1] = T_cond; //input2 DYNAMICDATA(&logical_unit,&nind,nx,&ny,x,y,info,&n); xout[0]=y[0]; xout[1]=y[1]; ... Kind Regards Daniel From: keilholz, werner
[mailto:werner.keilholz@cstb.fr] Hi Daniel, It it hard to tell
without looking @ some code, but I would bet on some argument type mismatch, or
array size mismatch (your arrays must match the constants in
TrnsysConstants.f90). The TRNSYS kernel functions
mainly want arguments passed by reference, like in int a; doit(&a); Set a breakpoint on
the line that calls the function , F5 in DevStudio, navigate to Trnsys.exe,
point to the deck to run, inspect the variables when the breakpoint is hit. F11
will basically debug into the TRNDll by using the debug version (you need to
recompile TRNDll with a Fortran compiler). Hope that helps (a
little), Werner De :
Daniel.Kiehlmann@csiro.au [mailto:Daniel.Kiehlmann@csiro.au] Dear all, I’m trying to create a new component in C++ with a
dynamicdata function. It works when I build the solution in C++, but pulls out
following error when I run this component in TRNSYS: “Access violation at address 100048CC in module
‘TRNDLL.DLL’. Read of address 00000002” Does anyone has some experience in using the dynamicdata
function in C+ and can help me out? Thanks very much in advance Daniel Kiehlmann |