
C#调用fortran动态库(dll)字符串传递出现问题 C#版本是VS2008 fortran是CVF6.6
fortran声明:subroutinemaths(datafile,datafileL,timedat,timedatL,pt,ptL,ph,phL,sh,shL,dd...
fortran声明:
subroutine maths(datafile,datafileL,timedat,timedatL,pt,ptL,ph,phL,sh,shL,ddsh,ddshL)
integer(4) datafileL,timedatL,ptL,phL,shL,ddshL
character(datafileL) filename1
character(timedatL)timedat
character(ptL)pt
character(phL)ph
character(shL) sh
character(ddshL)ddsh
C#定义:
[DllImport("main.dll", EntryPoint = "MATHS", CharSet = CharSet.Ansi)]
public static extern void MATHS(StringBuilder InDataFile, ref int InDataFileLength, StringBuilder InTimeFile, ref int InTimeLength,
StringBuilder OutPTFile, ref int OutPTLength, StringBuilder OutPHFile, ref int OutPHLength, StringBuilder OutSHFile, ref int OutSHLength, StringBuilder OutDDSHFile, ref int OutDDSHLength);
C#调用:
FortranClass.MATHS(InDataFile, ref InDataFileL, InTimeFile, ref InTimeFileL, OutPTFile, ref OutPTFileL, OutPHFile, ref OutPHFileL, OutSHFile, ref OutSHFileL, OutDDSHFile, ref OutDDSHFileL);
我在fortran程序里加了段代码让把传过去的文件名写在TXT里,打开全是乱码 展开
subroutine maths(datafile,datafileL,timedat,timedatL,pt,ptL,ph,phL,sh,shL,ddsh,ddshL)
integer(4) datafileL,timedatL,ptL,phL,shL,ddshL
character(datafileL) filename1
character(timedatL)timedat
character(ptL)pt
character(phL)ph
character(shL) sh
character(ddshL)ddsh
C#定义:
[DllImport("main.dll", EntryPoint = "MATHS", CharSet = CharSet.Ansi)]
public static extern void MATHS(StringBuilder InDataFile, ref int InDataFileLength, StringBuilder InTimeFile, ref int InTimeLength,
StringBuilder OutPTFile, ref int OutPTLength, StringBuilder OutPHFile, ref int OutPHLength, StringBuilder OutSHFile, ref int OutSHLength, StringBuilder OutDDSHFile, ref int OutDDSHLength);
C#调用:
FortranClass.MATHS(InDataFile, ref InDataFileL, InTimeFile, ref InTimeFileL, OutPTFile, ref OutPTFileL, OutPHFile, ref OutPHFileL, OutSHFile, ref OutSHFileL, OutDDSHFile, ref OutDDSHFileL);
我在fortran程序里加了段代码让把传过去的文件名写在TXT里,打开全是乱码 展开
3个回答
展开全部
文件名选中文了?
追问
是啊
追答
字符编码选为utf-8试试
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询