delphi写的ocx供asp调用,在ie客户端下载activex控件,实现客户端与服务端的socket通讯
就是activeform上clientserver的几个方法和事件
在调用的时候需要ocx读取配置文件中的host,port连接服务端
配置文件为ini,路径问题怎么解决
ini := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'ocx.ini');为调用ocx的exe文件的路径,asp调用的时候找不到配置文件
如果ocx.ini与test.ocx在iis同一目录的话,需要自己写函数来确定ocx.ini的路径吗?
如果写注册表的话,改配置的话还要去注册表中找..

解决方案 »

  1.   

    //TIniFile.Create(ExtractFilePath(ParamStr(0))   +   'ocx.ini ');
    如果你想把这个配置文件放到客户端,你只能把它放在系统目录下,system或system32目录下
      

  2.   

    你也可以将这些配置文件放到web服务器上,activex通过xmlhttp获得这些配置信息
      

  3.   

    hongqi162 大哥
    关键是当客户端ie下载activex控件时,ini文件ms不会被下载..
    我去跟写asp的商量下,决定在ocx初始化时,host,port写死在程序里,这样行不?
      

  4.   

    在你的ocx里定义两个属性,加载activex的时候把这个值赋上
      

  5.   

    在你的ocx里定义两个属性,加载activex的时候把这个值赋上
    ////*********************************************
    呵呵,其实也这么做过,属性publish出来供ocx调用者赋值,
    也提供了一个sConnect(const Host,Port : WideString);方法供ocx调用者调用
    但ocx调用者提出在ocx被调用时就连接服务器,我只能在activeformcreate中
      try
        ini := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'ocx.ini');
        cltSocket.Host := ini.ReadString('Setting', 'Host', '');
        cltSocket.Port := StrToInt(ini.ReadString('Setting', 'Port', ''));
        cltSocket.Open;
        ini.Free;
      except  end;   
    呵呵如果他们坚持要在配置文件中修改host,port,貌似只能让客户下载ini文件到指定目录... ...就像他们原来做的那样