Hi Xingbin,
I once proposed this solution :
https://www-old.cae.wisc.edu/pipermail/trnsys-users/2010/005500.html
It does not use the special cards, but the external file tab, like FORTRAN components.
In TRNSYS 17, there is a special FILE keyword, which solves this problem. I attach a sample component with source code using it (but this requires Trnsys 17, does not work with 16).
Werner
De : xingbin lin [mailto:lynxingbin@gmail.com]
Envoyé : vendredi 4 juin 2010 15:31
À : TRNSYS-users@cae.wisc.edu
Objet : [TRNSYS-users] Call external file through special cards with C++
Hello everyone,
I built a new type in which I need call external file through special cards in trnsys 16,and I exported it as C++,in this type,I wanted to get the path of external file by using the access function getLabel(int,int) which was defined in TRNSYS.h header file.
But when I runned the simulation,it prompted "Access violation at address ###### in module 'dforrt.dll'".The function getLabel(int,int) defined in "TRNSYS.h" is that "extern "C" __declspec(dllimport) char* _cdecl TRNSYSFUNCTIONS_mp_GETLABEL(int , int );#define getLabel TRNSYSFUNCTIONS_mp_GETLABEL".
I searched this problem in internet,somebody said maybe the reason existed in the process of calling the dll between C++ and Fortran.
Please tell me how can I solve this exception and any suggestions.
Thanks.
Xingbin Lin