博客首页 注册 建议与交流 排行榜 加入友情链接
推荐 投诉 搜索: 帮助

lxl-nyist (大漠孤烟)

  lvxing.cublog.cn

关于作者
姓名:(louis)
职业:
年龄:
位置:
个性介绍:
|| << >> ||
我的分类


delphi activex dax error 暂时解决办法
给用户开发一卡通接口 在页面中使用 activex ,activex 再通过indy httpclient 访问. 服务器,在部分机器上出现
dzx error
access violation at address 069c352a in module 'ykt.ocx'. Read of address 000000000.
   
后想使用applet 来解决,但好象是ie 安全性的限制问题.
把jar 签名后.在applet 内部可以用HttpURLConnection 可以得到http://127.0.0.1/cardreader 结果,但用javascript 却无法调用,同样出现
 
java.security.AccessControlException: access denied (java.net.SocketPermission 127.0.0.1:8181 connect,resolve)
 at java.security.AccessControlContext.checkPermission(Unknown Source)
 at java.security.AccessController.checkPermission(Unknown Source)
 at java.lang.SecurityManager.checkPermission(Unknown Source)
 at java.lang.SecurityManager.checkConnect(Unknown Source)
想使用ajax 代理的方式,但由于部分客户端ie 可能使用代理服务器. 也不可行.
想使用vc 6 再做一个activex 但.由于C++ 不熟.放弃.
想.net 做, 也不熟, 特别是字符串处理函数要用很多.时间不够.
(好象inet 控件,或是xmlhttp 控制)好象都不太好使 (水平太差.).
 
最后只能回到老路上了.
找到如下解决办法
  1、如果你是用d5   /   d6开发的话,请参见http://codecentral.borland.com/codecentral/ccweb.exe/listing?id=18656  
   
  axctrls.pas  
   
  function   ParkingWindow:   HWND;  
  var  
      TempClass:   TWndClass;  
      ParkingName   :   String;  
  begin  
      Result   :=   xParkingWindow;  
      if   Result   <>   0   then   Exit;  
   
      //   fix   Dax   error   :   accessviolation   (win2k,   win   xp)  
      ParkingName   :=   'DAXParkingWindow_'   +       Format('%p',   [@ParkingWindowProc]);  
   
      FillChar(TempClass,   sizeof(TempClass),   0);  
      if   not   GetClassInfo(HInstance,   PChar(ParkingName),   TempClass)   then   //   fix   Dax   error   :   accessviolation   (win2k,   win   xp)  
      begin  
          TempClass.hInstance   :=   HInstance;  
          TempClass.lpfnWndProc   :=   @ParkingWindowProc;  
          TempClass.lpszClassName   :=   PChar(ParkingName);   //   fix   Dax   error   :   accessviolation   (win2k,   win   xp)  
          if   Windows.RegisterClass(TempClass)   =   0   then  
              raise   EOutOfResources.Create(SWindowClass);  
      end;  
      xParkingWindow   :=   CreateWindowEx(WS_EX_TOOLWINDOW,   TempClass.lpszClassName,   nil,  
          WS_POPUP,   GetSystemMetrics(SM_CXSCREEN)   div   2,  
          GetSystemMetrics(SM_CYSCREEN)   div   2,   0,   0,   0,   0,   HInstance,   nil);  
      SetWindowPos(xParkingWindow,   0,   0,   0,   0,   0,   SWP_NOACTIVATE   or   SWP_NOREDRAW  
          or   SWP_NOZORDER   or   SWP_SHOWWINDOW);  
      Result   :=   xParkingWindow;  
  end;  
  即修改axctrls.pas   文件,并重新编译  
  2、在D7这样是不能解决问题的,而且Activeform也没有OnClose事件!但这样的问题一般都是出现在装了第三方IE   Addin的机器上,只要你将   IE的   工具->选项->高级->浏览   里的"启用第三方扩展"勾   uncheck就可以了。   
 

发表于: 2006-10-20,修改于: 2006-10-20 15:03,已浏览4088次,有评论2条 推荐 投诉


网友评论
网友: 本站网友 时间:2006-12-01 11:24:37 IP地址:218.87.20.★
金格科技的产品(http://www.goldgrid.com)原来也这个问题,现在已经解决了,是delphi的问题

网友: 本站网友 时间:2007-04-03 13:22:46 IP地址:221.204.100.★
你好,我现在也是碰到类似access violation at address 069c352a in module 'ykt.ocx'. Read of address 000000000的问题,但不同的是我再一个网页里面的两个链接对应两个控件调用,第一次打开的无论是哪个,都可以打开,但第二个链接就出现上述错误,我是用delphi7做的,请问这是什么原因,怎么解决,非常感谢!

 发表评论