Hi Xingbin, If you just want to know the name of the file, you can use the
code example below. (However, you will not be able to open that file during a TRNSYS
simulation, except if you use the new FILE keyword in Trnsys 17; in the other
cases, the file is opened by TRNSYS and thus locked). Werner #include
"TRNSYS.h" //TRNSYS acess functions (allow to acess TIME etc.) … //
DO ALL THE VERY FIRST CALL OF THE SIMULATION MANIPULATIONS HERE De : xingbin lin
[mailto:lynxingbin@gmail.com] Dear Werner: Thank you for your help so
much,Your solution is that to provide a dll which is programmed by fortran,then
I can build a C++ class to read the file content according to the logical unit
number,this is very smart. However,what I just want to get
the file path which is assigned in the specail cards in the new type.That is to
say,I would like to get the path of the file in my type,not the content. Can you provide me more advices?
Thanks a lot! Xingbin
Lin 2010/6/4 keilholz, werner <werner.keilholz@cstb.fr> 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]
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. Thanks. Xingbin
Lin |