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是微软公司推出的基于...
  • zang141588761
  • zang141588761
  • 2016年04月26日 10:10
  • 1688

ActiveX控件安全初始化之一:实现ISafeObject接口

转自:http://www.cnblogs.com/carekee/articles/1772201.html ActiveX控件打包成cab后,在脚本中调用中时,要保证控件的安全性才能...
  • rankun1
  • rankun1
  • 2016年06月22日 17:29
  • 1333

不完全解决sqlite遇到database is locked问题方法

sqlite遇到database is locked问题的完美解决 这两天在项目中用大强度大频率的方法测试时遇到sqlite报database is locked的问题, 分析下来原因是sq...
  • majiakun1
  • majiakun1
  • 2014年09月07日 11:29
  • 2767

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

一、ActiveX应用情况简介:                          ActiveX控件也就是一般所说的OCX控件,它是 ActiveX技术的一部分。ActiveX是微软公司推出的基于...
  • zang141588761
  • zang141588761
  • 2016年04月26日 10:10
  • 1688

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

一、ActiveX应用情况简介:                          ActiveX控件也就是一般所说的OCX控件,它是 ActiveX技术的一部分。ActiveX是微软公司推出的基于...
  • xiongmao000738
  • xiongmao000738
  • 2011年09月26日 14:13
  • 5932

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

一、ActiveX应用情况简介:                          ActiveX控件也就是一般所说的OCX控件,它是 ActiveX技术的一部分。ActiveX是微软公司推出的基于...
  • Tercel99
  • Tercel99
  • 2012年07月01日 01:08
  • 945

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

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

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

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

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

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

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

打开Delphi,关闭所有项目。 1.      安装OCX控件 点击菜单项:Component -> Import ActiveX Control… 进入如下界面: 然后点击按钮“A...
  • xt_chaoji
  • xt_chaoji
  • 2011年11月30日 15:06
  • 2067
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:fix DAX error(解决delphi编写的ocx控件中的DAX error问题)
举报原因:
原因补充:

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