我有一个基于eclipse的富客户端应用程序,在某些情况下会崩溃。获取JVM转储,显示的错误是一个0xC0000005(无效访问)到swt dll。
Current thread (0x02b58400): JavaThread "main" [_thread_in_native, id=5032, stack(0x00090000,0x00190000)]
siginfo: ExceptionCode=0xc0000005, reading address 0xfeeefef6
[...]
Stack: [0x00090000,0x00190000], sp=0x0018dd78, free space=1015k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [swt-win32-3659.dll+0x1131f] Java_org_eclipse_swt_internal_win32_OS_VtblCall__II+0xb
J org.eclipse.swt.internal.ole.win32.IUnknown.Release()I
j org.eclipse.swt.ole.win32.OleControlSite.releaseObjectInterfaces()V+9
j org.eclipse.swt.ole.win32.OleClientSite.onDispose(Lorg/eclipse/swt/widgets/Event;)V+83
我无法理解为什么会崩溃,所以我从org.eclipse.swt.win32.win32.x86.source_3.6.3.v3659f插件中获取了SWT dll的源代码并尝试构建它。
当我尝试启动构建时,我收到此错误
Microsoft(R)程序维护实用程序版本7.10.3077 版权所有(C)Microsoft Corporation。保留所有权利。
cl -O1 -DNDEBUG -c -DCRTAPI1=_cdecl -DCRTAPI2=_cdecl -nologo -D_X86_=1-DWIN32 -D_WIN32 -W3 -D_WINNT -D_WIN32_WINNT=0x0500-D_WIN32_IE=0x0500 -DWINVER=0x0500 -D_MT -MTd -DSWT_VERSION=3659 -DUSE_ASSEMBLER /I"S:\swt-builddir\ibm-java2-sdk-50-win-i386\include" /I"S:\swt-builddir\ibm-java2-sdk-50-win-i386\include\win32" /I"C:\Program Files (x86)\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include" /I. os.c
os.c
c:\temp\secnew\SWT_3659\os_structs.h(100) : error C2143: syntax error : missing '{' before '*'
c:\temp\secnew\SWT_3659\os_structs.h(100) : error C2143: syntax error : missing ')' before '*'
c:\temp\secnew\SWT_3659\os_structs.h(100) : error C2081: 'BUTTON_IMAGELIST' : name in formal parameter list illegal
我使用VS和JRE的正确路径更改了build.bat,但没有任何效果。我错过了什么?
谢谢