Windows上的SWT DLL重新编译

时间:2015-06-22 16:25:04

标签: c eclipse windows dll swt

我有一个基于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,但没有任何效果。我错过了什么?

谢谢

0 个答案:

没有答案