好像有人贴过一个网址,说的解决办法,我把可能的解决办法(说可能因为我也不知道它是不是百分之一百有用)贴一下吧:
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
我的dax问题,是千次里面会出现一次的,但也是问题啊,所以用了上述方法重新编译了一下,现在当然没出现问题,但我不能保证以后也不会出现,只能试试看了,死马当活马来医了,郁闷,如果大家有什么更好的办法也分享一下啊!