由于项目限制,我需要通过共享公共块将一个字符串从C ++例程传递到Fortran例程作为Fortran integer*1(255)
数组。
C ++例程中数组的表示由项目程序设置为:
shared data base definition:
extern __CTYPE__ __declspec (dllimport) struct global_xx globalxx;
全局数据库中感兴趣的数组定义为:
#define routine_file(x1) (*(unsigned char *)(globalxx.b + ((x1)-x)*1))
此外,在C ++例程中,我需要为此变量分配一个文件名:
routine_file == "long file name with directory structure";
稍后在Fortran例程中,变量将以:
的形式出现 COMMON/GLOBALxx/GLBxx(0:bignum)
CHARACTER*1 GLBxx
INTEGER*1 routine_file(255)
EQUIVALENCE (routine_file,GLBxx(num in bignum))
我知道如何处理fortran中的变量。我将非常感谢协助在代码的c ++部分加载变量routine_file。
谢谢