各位大哥,大侠;小弟有事请教
在用VC6.0调用dll时,dll中的函数需用数据源,数据在R32.fld和R125.fld中,有下面代码:
           nc   =   2;   
          x[0]   =   0.69762;   
          x[1]   =   0.30238; 
 strcpy(HFILES,"F:\\wq\\refprop7\\fluids\\R32.fld|F:\\wq\\refprop7\\fluids\\R125.fld\0"); 
          strcpy(HFMIX,"F:\\wq\\Refprop7\\Fluids\\HMX.BNC\0");   
          strcpy(HRF,"DEF\0");   
          strcpy(HERR,"Ok\0");   
    
          SETUPdll(nc,   HFILES,   HFMIX,   HRF,   ierr,   HERR,   
                            refpropfluidpathlength,refpropcharlength,   
                           lengthofreference,errormessagelength); 
 
运行时需把R32.fld和R125.fld中数据连接到 SETUPdll函数中,用的语句:
strcpy(HFILES,"F:\\wq\\refprop7\\fluids\\R32.fld|F:\\wq\\refprop7\\fluids\\R125.fld\0"); 
请问(一):这句中“|"字符是什么意思?(二):HFILES是指针,上面语句的作用?(三):在调试时不报错,运行后不显示结果,要求输入数据源连接路径,为什么???
    

解决方案 »

  1.   

    |估计是个分隔符,在SETUPdll的内部处理中会根据这个字符拆分HFILES字符串,以便获取多个文件路径。
      

  2.   

    strcpy(HFILES,"F:\\wq\\refprop7\\fluids\\R32.fld|F:\\wq\\refprop7\\fluids\\R125.fld\0"); 
    是给HFILES这个指针指向的字符数组赋值,以便将文件路径传递给SETUPdll进行处理
      

  3.   

    在调试时不报错,运行后不显示结果,要求输入数据源连接路径,为什么??? 
    ==这段代码是你写的?还是哪里弄来的别人说是OK的代码?
    请确认代码的正确性,以及参数的正确性
    目前无法得知SETUPdll的功能,以及对各个参数的要求,无法帮你进行故障分析。
    看一下SETUPdll是否有返回值,或者LastError之类的错误信息。
      

  4.   

    1. 估计是路径分割符, 具体要看 SETUPdll 里面是怎么处理的(或者是SETUPdll的说明文档)才知道
    2. 把字符串拷贝到 HFILES 中
    3. 可能是你的 "F:\\wq\\refprop7\\fluids\\R32.fld|F:\\wq\\refprop7\\fluids\\R125.fld\0" 格式不对造成的(比如是否使用|分割路径,最后是否需要\0,等), 参看1.