fix DAX error(解决delphi编写的ocx控件中的DAX error问题)

原创 2005年11月03日 10:05:00

when using Internet Explorer in Wink2, WinXp, ActiveForm or ActiveX control raise

DAX error : access violation at address 000

reason :

delphi's ocx use same parking window procedure.

one ocx must use individual parking window proc.

fix error.

edit delphi VCL source routine in axctrls.pas

and compile axctrls.pas 

copy axctrls.dcu to lib directory.

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; 

相关文章推荐

Delphi 编写ActiveX控件(OCX控件)的知识和样例

一、ActiveX应用情况简介:                          ActiveX控件也就是一般所说的OCX控件,它是 ActiveX技术的一部分。ActiveX是微软公司推出的基于...

Delphi 编写ActiveX控件(OCX控件)的知识和样例

一、ActiveX应用情况简介:                          ActiveX控件也就是一般所说的OCX控件,它是 ActiveX技术的一部分。ActiveX是微软公司推出的基于...

C++编写ActiveX ocx控件在网页中调用失败问题

需要实现IObjectSafety接口  打“开工程名Ctl.h”在最上面添加     #include          在类中的DECLARE_DYNCREATE(C工程名Ctr...
  • li213y
  • li213y
  • 2016年01月06日 16:30
  • 132

关于WIN7下STCISP因MSCOMM32.OCX控件问题无法运行及解决方法

本人一直用的XP系统,调试单片机从来没有出现过问题。  前两天楼上的哥们买了新电脑,装的是WIN7系统,他也开始学单片机了,但是却发现stcisp下载程序无法打开,每次双击打开这个程序,都会弹出以下...

解决IE不能加载OCX控件问题(一)

OCX是VS2010开发 在共享DLL中使用MFC 运行库是多线程选择的是MD IE浏览器打开嵌入OCS的页面后,无法加载OCX,如下图: 在IE浏览器打开该U...
  • okhelp
  • okhelp
  • 2015年04月11日 16:20
  • 4848

Delphi安装/卸载OCX控件的方法

打开Delphi,关闭所有项目。 1.      安装OCX控件 点击菜单项:Component -> Import ActiveX Control… 进入如下界面: 然后点击按钮“A...

问题解决——基于MSCOMM32.OCX控件的类在客户机不能创建控件

大家不要笑我了,我不喜欢用那个人家写的串口类
  • wlsgzl
  • wlsgzl
  • 2014年11月21日 16:35
  • 1982

IE浏览器下OCX控件的兼容问题(续集)——Javascript代码实现

本文主要讲解如何解决OCX控件在浏览器上使用的兼容性问题,并给出相应的Javascript代码实现。...

Delphi封装DLL到IE OCX控件

  • 2016年02月29日 16:20
  • 767KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:fix DAX error(解决delphi编写的ocx控件中的DAX error问题)
举报原因:
原因补充:

(最多只允许输入30个字)