Update from Java 1.5 to Java 1.6 and VC2005 to VS2010

This commit is contained in:
clay_shooter
2013-08-03 12:00:34 +00:00
parent d1dca37cf3
commit aeca6e8dc2
6 changed files with 78 additions and 37 deletions

View File

@@ -3,23 +3,24 @@
Ant build file for JACOB.
Created Feb 4, 2005 1:23:05 PM as part of migration from ANT
Last Modified March 24, 2007
Last Modified September 2 2013
Tested on Eclipse 3.3 with the Europa C++ plugins, Ant 1.7 and MS Visual C++ 8 (2005)
Tested on Eclipse 3.3 with the Europa C++ plugins, Ant 1.8 and MS Visual C++ 10 (2010)
Eclipse users are pretty lucky because the whole project
can be built inside eclipse due to their built in ANT support.
The COM portion of this build requires MS Visual C++ 8.0. (2005)
The COM portion of this build requires MS Visual C++ 1.0. (2010)
The build proces defined in this build.xml file does not support
YOU MUST define a file named compilation_tools.properties!
The file for MS Visual C++ 8.0 building 32 and 64 bit (installed on windows 7 64 bit)
The file for MS Visual C++ 10 building 32 and 64 bit (installed on windows 7 64 bit)
(releases up to 1.11 only supported 32 bit builds) looks something like:
JDK=c\:\\Program Files (x86)\\java\\jdk1.5.0_22
MSDEV_DIR=c\:\\Program Files (x86)\\Microsoft Visual Studio 8\\VC
MSDEV_IDE_DIR=c\:\\Program Files (x86)\\Microsoft Visual Studio 8\\Common7\\IDE
version=1.17-M2
JDK=c\:\\Program Files (x86)\\java\\jdk1.6.0_31
MSDEV_DIR=c\:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC
MSDEV_IDE_DIR=c\:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\Common7\\IDE
MSDEV_PLATFORM_DIR=c\:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0A
version=1.18-M1
DO NOT check compilation_tools.properties into source control as the
values are specific to YOUR environment.
@@ -40,6 +41,7 @@
<property name="JDK" value="JDK not set in compilation_tools properties file"/>
<!-- MSDEV_DIR is a required parameter so set to a message if its not set -->
<property name="MSDEV_DIR" value="MSDEV_DIR not set in compilation_tools properties file"/>
<property name="MSDEV_PLATFORM_DIR" value="MSDEV_PLATFORM_DIR not set in compilation_tools properties file"/>
<echo message="executing with MSDEV_DIR=${MSDEV_DIR}" />
@@ -79,22 +81,22 @@
<property name="compiler.x86" value="${MSDEV_DIR}\bin\cl.exe" />
<property name="linker.x86" value="${MSDEV_DIR}\bin\link.exe" />
<property name="manifestool.x86" value="${MSDEV_DIR}\bin\mt.exe" />
<property name="manifestool.x86" value="${MSDEV_PLATFORM_DIR}\bin\mt.exe" />
<property name="include.x86" value="${MSDEV_DIR}\include" />
<property name="include.x86.platformSDK" value="${MSDEV_DIR}\PlatformSDK\Include" />
<property name="include.x86.platformSDK" value="${MSDEV_PLATFORM_DIR}\Include" />
<property name="include.x86.atl" value="${MSDEV_DIR}\atlmfc\include" />
<property name="library.x86" value="${MSDEV_DIR}\lib" />
<property name="library.x86.platformSDK" value="${MSDEV_DIR}\PlatformSDK\lib" />
<property name="library.x86.platformSDK" value="${MSDEV_PLATFORM_DIR}\lib" />
<property name="library.x86.atl" value="${MSDEV_DIR}\atlmfc\lib" />
<!-- You have to love the beautiful asymetry of the MS world -->
<!-- The platform SDK comes with 64 bit tools but not 32 bit tools -->
<property name="compiler.x64" value="${MSDEV_DIR}\bin\x86_amd64\cl.exe" />
<property name="linker.x64" value="${MSDEV_DIR}\bin\x86_amd64\link.exe" />
<property name="manifesttool.x64" value="${MSDEV_DIR}\bin\x86_amd64\mt.exe" />
<property name="manifesttool.x64" value="${MSDEV_PLATFORM_DIR}\bin\x64\mt.exe" />
<property name="include.x64" value="${MSDEV_DIR}\include" />
<property name="library.x64" value="${MSDEV_DIR}\lib\amd64" />
<property name="library.x64.platformSDK" value="${MSDEV_DIR}\PlatformSDK\lib\amd64" />
<property name="library.x64.platformSDK" value="${MSDEV_PLATFORM_DIR}\lib\x64" />
<property name="library.x64.atl" value="${MSDEV_DIR}\atlmfc\lib\amd64" />

View File

@@ -14,7 +14,7 @@ The main steps for getting a working Jacob build are:
<h1> Repository Organization </h1>
<p>
Unpack the source archive zip file or check the files out of CVS into d:\jacob
or some other familiar place. Source Java and JNI files are located in seperate
or some other familiar place. Source Java and JNI files are located in separate
packages from the unit tests and the samples.
<p>
<ul>
@@ -33,34 +33,36 @@ The Servlet examples that required j2ee libraries to compile have temporarily
been removed.
<p>
<H1>Development Environment</h1>
The simplest build environment includes MS Visual C++ 8.0 (Studio 2005),
Eclipse 3.3 with the C/C++ module and JDK 1.5.
The simplest build environment includes MS Visual Studio 10.0 (Studio 2010),
Eclipse 3.3 with the C/C++ module and JDK 1.6.
In that situation, you would just create the <i>compilation_tools.properties</i>
using the example build.xml as a template.
using the example at the top of build.xml as a template.
<UL>
<li> Microsoft Visual C++ 8.0 and it's included library. (to C:\ProgramFiles in my case)
<li> Microsoft Visual Studio 10.0 and it's included library. (to C:\ProgramFiles (X86) in my case)
<li> Eclipse 3.4 or later from www.eclipse.org as the Java IDE.
<li> Eclipse 3.4 or later with the C/C++ plugin can be used for C coding in place of VC++ IDE.
<li> Java JDK 1.5 (1.17 was built using 1.5.0.22)
<li> Java JDK 1.6 (1.18 was built using 1.7.0_31)
</ul>
<p>
<p>
<table>
<TR><TD>Release</TD><TD>C Version</TD><TD>Java Version</TD><TD>ANT Version</TD><TD>Eclipse Version Used</TD><TD>generated DLLs</TD></TR>
<TR><TD>up to 1.6</TD><TD>VC 98 (6.0)</TD><TD>?</TD><td>MAKE</td><TD>?</TD><TD>32 bit</TD></TR>
<TR><TD>1.7</TD><TD>VC 98 (6.0)</TD><TD>1.4</TD><td>1.?</td><TD>?</TD><TD>32 bit</TD></TR>
<TR><TD>1.8</TD><TD>VC 98 (6.0)</TD><TD>1.4</TD><td>1.?</td><TD>?</TD><TD>32 bit</TD></TR>
<TR><TD>1.9</TD><TD>VC 98 (6.0)</TD><TD>1.4</TD><td>1.?</td><TD>?</TD><TD>32 bit</TD></TR>
<TR><TD>1.10</TD><TD>VC 98 (6.0)</TD><TD>1.4</TD><td>1.?</td><TD>3.??</TD><TD>32 bit</TD></TR>
<TR><TD>1.11</TD><TD>VC 98 (6.0) & 2003 64bit libs</TD><TD>1.4.?</TD><td>1.6.?</td><TD>3.2.1</TD><TD>32 and 64 bit</TD></TR>
<TR><TD>1.12</TD><TD>VC 98 (6.0) & 2003 64bit libs</TD><TD>1.4.2</TD><td>1.6.5</td><TD>3.2.2</TD><TD>32 and 64 bit</TD></TR>
<TR><TD>1.13</TD><TD>VC 2005</TD><TD>1.4.2</TD><TD>1.7.0</TD><TD>3.3</TD><TD>32 and 64 bit</TD></TR>
<TR><TD>1.14</TD><TD>VC 2005</TD><TD>1.5.0</TD><TD>1.7.0</TD><TD>3.3</TD><TD>32 and 64 bit</TD></TR>
<TR><TD>1.15</TD><TD>VC 2005</TD><TD>1.5.0</TD><TD>1.7.0</TD><TD>3.4</TD><TD>32 and 64 bit</TD></TR>
<TR><TD>1.17</TD><TD>VC 2005</TD><TD>1.5.0</TD><TD>1.8.4 Eclipse Embedded</TD><TD>4.3</TD><TD>32 and 64 bit</TD></TR>
<TR><TD>1.7</TD><TD>VC 98 (6.0)</TD><TD>1.4 (48)</TD><td>1.?</td><TD>?</TD><TD>32 bit</TD></TR>
<TR><TD>1.8</TD><TD>VC 98 (6.0)</TD><TD>1.4 (48)</TD><td>1.?</td><TD>?</TD><TD>32 bit</TD></TR>
<TR><TD>1.9</TD><TD>VC 98 (6.0)</TD><TD>1.4 (48)</TD><td>1.?</td><TD>?</TD><TD>32 bit</TD></TR>
<TR><TD>1.10</TD><TD>VC 98 (6.0)</TD><TD>1.4 (48)</TD><td>1.?</td><TD>3.??</TD><TD>32 bit</TD></TR>
<TR><TD>1.11</TD><TD>VC 98 (6.0) & 2003 64bit libs</TD><TD>1.4.? (48)</TD><td>1.6.?</td><TD>3.2.1</TD><TD>32 and 64 bit</TD></TR>
<TR><TD>1.12</TD><TD>VC 98 (6.0) & 2003 64bit libs</TD><TD>1.4.2 (48)</TD><td>1.6.5</td><TD>3.2.2</TD><TD>32 and 64 bit</TD></TR>
<TR><TD>1.13</TD><TD>VC 2005 (8)</TD><TD>1.4.2 (48)</TD><TD>1.7.0</TD><TD>3.3</TD><TD>32 and 64 bit</TD></TR>
<TR><TD>1.14</TD><TD>VC 2005 (8)</TD><TD>1.5.0 (49)</TD><TD>1.7.0</TD><TD>3.3</TD><TD>32 and 64 bit</TD></TR>
<TR><TD>1.15</TD><TD>VC 2005 (8)</TD><TD>1.5.0 (49)</TD><TD>1.7.0</TD><TD>3.4</TD><TD>32 and 64 bit</TD></TR>
<TR><TD>1.17</TD><TD>VC 2005 (8)</TD><TD>1.5.0 (49)</TD><TD>1.8.4 Eclipse Embedded</TD><TD>4.3</TD><TD>32 and 64 bit</TD></TR>
<TR><TD>1.18</TD><TD>VS 2010 (10) Windows SDK VS2010 (7.0A)</TD><TD>1.6.0 (50)</TD><TD>1.8.4 Eclipse Embedded</TD><TD>4.3</TD><TD>32 and 64 bit</TD></TR>
</table>
Microsoft Visual C++ 8.0 supports 64 bit builds. so no additional tools are required.
Microsoft Visual Studio 10 supports 64 bit builds. so no additional tools are required.<BR>
Microsoft changed the location of the windows sdk (formerly known as platform sdk) after VC 8.0. https://en.wikipedia.org/wiki/Microsoft_Windows_SDK
<p>
@@ -84,7 +86,7 @@ There are two main ant targets.
<li> create the dll
<li> create jar file
</UL>
<li>"package" runs the above listed steps and then
<li>"packageRelease" runs the above listed steps and then
<UL>
<LI>builds the javadoc

View File

@@ -1,6 +1,41 @@
<HTML>
<BODY>
<!-- ---------- -->
<h2>JACOB 1.18</h2>
<h3>What's New</h3>
<ul>
<li>
Built with Java 1.6 and Visual Studio 2010
</li>
</ul>
<h3>Tracked Changes</h3>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" >
<tr>
<td colspan="2"><b>Bugs</b></td>
</tr>
<tr>
<td width="13%" valign="top">&nbsp;</td>
<td width="87%" valign="top">&nbsp;</td>
</tr>
<tr>
<td colspan="2"><b>Patches</b></td>
</tr>
<tr>
<td width="13%" valign="top">&nbsp;</td>
<td width="87%" valign="top">&nbsp;</td>
</tr>
<tr>
<td colspan="2"><b>Feature Requests</b></td>
</tr>
<tr>
<tr>
<td width="13%" valign="top"></td>
<td width="87%" valign="top"></td>
</tr>
</table>
<!-- ---------- -->
<h2>JACOB 1.17</h2>
<h3>What's New</h3>

View File

@@ -18,7 +18,6 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include <jni.h>
#include <windows.h>
#include <objbase.h>
#include <oleauto.h>
#include <olectl.h>

View File

@@ -37,7 +37,6 @@
#define _WIN32_WINNT 0x0500
#endif
//#define _ATL_APARTMENT_THREADED
#include <windows.h>
#include <comdef.h>
#include <comutil.h>
#include <atlbase.h>

View File

@@ -37,6 +37,8 @@ public class ExcelEventTest extends BaseTestCase {
typeLibLocation = "C:\\Program Files\\Microsoft Office\\OFFICE11\\EXCEL.EXE";
// office 2007
typeLibLocation = "C:\\Program Files\\Microsoft Office\\OFFICE12\\EXCEL.EXE";
// office 2013 322 bit
typeLibLocation = "C:\\Program Files (x86)\\Microsoft Office\\Office14\\EXCEL.EXE";
// Grab The Component.
ActiveXComponent axc = new ActiveXComponent(excelApplicationProgramId);
@@ -50,9 +52,9 @@ public class ExcelEventTest extends BaseTestCase {
Dispatch workbooks = axc.getPropertyAsComponent("Workbooks");
Dispatch workbook = Dispatch.get(workbooks, "Add").toDispatch();
Dispatch sheet = Dispatch.get(workbook, "ActiveSheet").toDispatch();
System.out.println("Workbook: "+workbook);
System.out.println("Sheet: "+sheet);
if (typeLibLocation.contains("OFFICE11")){
System.out.println("Workbook: " + workbook);
System.out.println("Sheet: " + sheet);
if (typeLibLocation.contains("OFFICE11")) {
// office 2007 throws crashes the VM
System.out.println("Hooking up sheet listener");
hookupListener(sheet, excelSheetProgramId, typeLibLocation);
@@ -112,7 +114,8 @@ public class ExcelEventTest extends BaseTestCase {
.println("No exception thrown but no dispatch returned for Excel events");
} else {
// Yea!
System.out.println("Successfully attached listener to " + programId);
System.out
.println("Successfully attached listener to " + programId);
}
}
@@ -138,6 +141,7 @@ public class ExcelEventTest extends BaseTestCase {
* Override the invoke method to log all the events so that we don't
* have to implement all of the specific events.
*/
@Override
public Variant invoke(String methodName, Variant targetParameter[]) {
System.out.println("Received event from " + listenerPrefix + ": "
+ methodName);