给用户开发一卡通接口 在页面中使用 activex ,activex 再通过indy httpclient 访问. 服务器,在部分机器上出现
dzx error
access violation at address 069c352a in module 'ykt.ocx'. Read of address 000000000.
后想使用applet 来解决,但好象是ie 安全性的限制问题.
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就可以了。