JDirect
 
 

JDirect    JDirectNext
About J/Direct     JDirect Next

 


Introduction

Microsoft® J/Direct™ is a new feature that provides easy access to Microsoft® Windows® dynamic-link libraries (DLLs). Using J/Direct, you can make direct calls to standard Win32 system DLLs (such as KERNEL32 and USER32) and third-party DLLs. J/Direct is far simpler to use than the older Raw Native Interface or the Java Native Interface (known as RNI and JNI, respectively), both of which require you to write a specialized wrapper DLL and perform all non-trivial data type translations yourself. With J/Direct, the vast majority of pre-existing DLL functions can be invoked by simply declaring the function and calling it. J/Direct uses the @dll.import directive, which is similar in usage and in spirit to Visual Basic's DECLARE facility.

To use J/Direct, you must install the latest versions of the Microsoft Compiler for Java and the Microsoft Win32 Virtual Machine for Java. These are available with the Microsoft SDK for Java version 2.5. You can find code samples that use J/Direct under \MsVmJava\Samples\JDirect\ in the directory in which you install the Microsoft SDK for Java.

This article explains how to use the @dll.import directive to invoke a DLL function from Java. This article also offers details about how each data type is passed and received, and describes how the @dll.struct directive is used to pass and receive structures from DLL methods.

The following topics are included:

Getting Started

How Data Types are Marshaled

Invoking OLE API Functions

Aliasing (Method Renaming)

Linking by Ordinal

Specifying @dll.import for an Entire Class

How the VM Chooses Between ANSI and Unicode

Obtaining the Error Code Set By a DLL Function

Dynamically Loading and Invoking DLLs

Comparing J/Direct to Raw Native Interface

Security Issues

Error Messages

Troubleshooting Tips

Frequently Asked Questions

Top © 1998 Microsoft Corporation. All rights reserved. Terms of use.