<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Here is a working test case in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-Library-and-DLLEXPORT/m-p/958297#M15668</link>
    <description>Here is a working test case and you could use it ( once again, take a look at JNI examples in Java SDK ( v1.4, v1.5, v1.6, etc) ):

...
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// HelloWorldImp.c

#include "Stdafx.h"
#include "HelloWorld.h"

JNIEXPORT void JNICALL &lt;STRONG&gt;Java_HelloWorld_displayHelloWorld&lt;/STRONG&gt;( JNIEnv *env, jobject obj )
{
	printf( "Hello Java Native Interface!\n" );
	printf( "Hello Intel MKL!\n" );

	#ifdef _DEBUG
	printf( "Win32 Debug Configuration\n" );
	#else
	printf( "Win32 Release Configuration\n" );
	#endif

	HMODULE hMklRtDll = NULL;

	void ( *pfMklGetVersionString )( char *, int ) = NULL;
	void ( *pfMklGetVersion )( MKLVersion * ) = NULL;

	bool bOk = false;

	while( true )
	{
		hMklRtDll = ::LoadLibrary( _T("mkl_rt.dll") );
		if( hMklRtDll == NULL )
			break;

		_tprintf( _T("Dynamic library mkl_rt.dll loaded\n") );

		pfMklGetVersionString = ( void ( * )( char *, int ) )::GetProcAddress( hMklRtDll, "MKL_Get_Version_String" );
		if( pfMklGetVersionString == NULL )
			break;

		pfMklGetVersion = ( void ( * )( MKLVersion * ) )::GetProcAddress( hMklRtDll, "MKL_Get_Version" );
		if( pfMklGetVersion == NULL )
			break;

		_tprintf( _T("MKL Initialization Done\n") );

		bOk = true;
		break;
	}

	if( bOk == true )
	{
		_tprintf( "\n" );

		MKLVersion Ver = { 0x0 };
		int iLenData = 256;
		char szVerData[256] = { 0x0 };

		pfMklGetVersionString( szVerData, iLenData );
		_tprintf( "\t%s\n", szVerData );

		pfMklGetVersion( &amp;amp;Ver );
		_tprintf( "\tMajor version         : %d\n", Ver.MajorVersion );
		_tprintf( "\tMinor version         : %d\n", Ver.MinorVersion );
		_tprintf( "\tUpdate version        : %d\n", Ver.UpdateVersion );
		_tprintf( "\tProduct status        : %s\n", Ver.ProductStatus );
		_tprintf( "\tBuild                 : %s\n", Ver.Build );
	//	_tprintf( "\tProcessor optimization: %s\n", Ver.Processor );

		_tprintf( "\n" );
	}
	else
		_tprintf( _T("MKL Initialization Failed\n") );

	if( hMklRtDll != NULL )
	{
		::FreeLibrary( hMklRtDll );
		hMklRtDll = NULL;

		_tprintf( _T("Dynamic library mkl_rt.dll unloaded\n") );
	}
}
...</description>
    <pubDate>Fri, 26 Jul 2013 00:21:13 GMT</pubDate>
    <dc:creator>SergeyKostrov</dc:creator>
    <dc:date>2013-07-26T00:21:13Z</dc:date>
    <item>
      <title>MKL Library and DLLEXPORT</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-Library-and-DLLEXPORT/m-p/958279#M15650</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;I would like to use LAPACK functions in my dynamic link library. In visual studio I set the project properties to link to the math kernel library. However when calling the Fortran subroutine from Java it seems that the LAPACK functions are not found and an error is issued:&lt;/P&gt;
&lt;P&gt;Exception in thread "main" java.lang.UnsatisfiedLinkError: Unable to load library 'C:\Users\...\Documents\Visual Studio 2012\Projects\TEQ\TEQ\Debug\TEQ': The specified module could not be found.&lt;/P&gt;
&lt;P&gt;All the subroutines in the Fortran module are exported using DLLEXPORT and I am able to call them in Java. However when one of the LAPACK subroutines is inserted the error is issued. I am not sure how to export the LAPACK subroutines? Do we need to export the routines or point to them in some way?&lt;/P&gt;
&lt;P&gt;Thanks,&lt;/P&gt;
&lt;P&gt;Mohammad&lt;/P&gt;</description>
      <pubDate>Tue, 23 Jul 2013 04:59:34 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-Library-and-DLLEXPORT/m-p/958279#M15650</guid>
      <dc:creator>Mohammad_K_</dc:creator>
      <dc:date>2013-07-23T04:59:34Z</dc:date>
    </item>
    <item>
      <title>&gt;&gt;...Unable to load library</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-Library-and-DLLEXPORT/m-p/958280#M15651</link>
      <description>&amp;gt;&amp;gt;...Unable to load library 'C:\Users\...\Documents\Visual Studio 2012\Projects\TEQ\TEQ\Debug\TEQ': The specified module
&amp;gt;&amp;gt;could not be found.

The path points to your directory ...Projects\TEQ\TEQ\Debug\TEQ. All MKL DLLs are located in [ InstallDir ]\Redist\Ia32\Mkl or [ InstallDir ]\Redist\Intel64\Mkl directories. Do you use single-threaded or multi-threaded MKL libraries? Please verify that all paths to MKL directories are set properly ( take a look at environment variables ).</description>
      <pubDate>Tue, 23 Jul 2013 05:15:46 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-Library-and-DLLEXPORT/m-p/958280#M15651</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2013-07-23T05:15:46Z</dc:date>
    </item>
    <item>
      <title>It is typical for interpreted</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-Library-and-DLLEXPORT/m-p/958281#M15652</link>
      <description>&lt;P&gt;It is typical for interpreted languages to tell you that your own DLL couldn't be loaded when in fact the problem is a dependent DLL. The MKL DLLs are not added to PATH by default as of the 2013 product, so perhaps you need to add the folder with the MKL DLLs to PATH.&lt;/P&gt;</description>
      <pubDate>Tue, 23 Jul 2013 20:19:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-Library-and-DLLEXPORT/m-p/958281#M15652</guid>
      <dc:creator>Steven_L_Intel1</dc:creator>
      <dc:date>2013-07-23T20:19:00Z</dc:date>
    </item>
    <item>
      <title>&gt;&gt;...I am not sure how to</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-Library-and-DLLEXPORT/m-p/958282#M15653</link>
      <description>&amp;gt;&amp;gt;...I am not sure how to export the LAPACK subroutines? Do we need to export the routines or point to
&amp;gt;&amp;gt;them in some way?..

No, you don't need to do this. It would be nice if you provide information what LAPACK functions are used, or will be used, in your application?</description>
      <pubDate>Wed, 24 Jul 2013 00:43:26 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-Library-and-DLLEXPORT/m-p/958282#M15653</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2013-07-24T00:43:26Z</dc:date>
    </item>
    <item>
      <title>I am using the following link</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-Library-and-DLLEXPORT/m-p/958283#M15654</link>
      <description>&lt;P&gt;I am using the following link to setup the mkl libraries: &lt;A href="https://software.intel.com/sites/default/files/article/184496/intel-mkl-configuring-in-microsoft-visual-studio.pdf" target="_blank"&gt;https://software.intel.com/sites/default/files/article/184496/intel-mkl-configuring-in-microsoft-visual-studio.pdf&lt;/A&gt;. I also ran the file mklvars.bat ia32 to set enviornment variables. However I'm getting the following error when trying to build. Is there a more updated instructions to set up the MKL libraries? I appreciate your help.&lt;/P&gt;
&lt;P&gt;Mohammad&lt;/P&gt;
&lt;P&gt;Error&amp;nbsp;&amp;nbsp; &amp;nbsp;1&amp;nbsp;&amp;nbsp; &amp;nbsp; error #11018: Cannot open mkl_intel_ilp64.lib&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Error&amp;nbsp;&amp;nbsp; &amp;nbsp;2&amp;nbsp;&amp;nbsp; &amp;nbsp; fatal error LNK1181: cannot open input file 'mkl_intel_ilp64.lib'&amp;nbsp;&amp;nbsp; &amp;nbsp;LINK&lt;/P&gt;</description>
      <pubDate>Wed, 24 Jul 2013 06:09:07 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-Library-and-DLLEXPORT/m-p/958283#M15654</guid>
      <dc:creator>Mohammad_K_</dc:creator>
      <dc:date>2013-07-24T06:09:07Z</dc:date>
    </item>
    <item>
      <title>Observe the occurrences of</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-Library-and-DLLEXPORT/m-p/958284#M15655</link>
      <description>&lt;P&gt;Observe the occurrences of "64" in the error messages. Those 64-bit libraries should not have been required if you were compiling for X86, as your using the "ia32" &amp;nbsp;argument to mklvars.bat. That they are asked for by the linker is an indication that one or more objects/libraries given to the linker were compiled for X64. Check the settings in your project and make sure that X64 is not specified anywhere, clean and rebuild all objects and targets (including user-built libraries and third-party libraries).&lt;/P&gt;</description>
      <pubDate>Wed, 24 Jul 2013 09:45:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-Library-and-DLLEXPORT/m-p/958284#M15655</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2013-07-24T09:45:00Z</dc:date>
    </item>
    <item>
      <title>The 64 library is for using</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-Library-and-DLLEXPORT/m-p/958285#M15656</link>
      <description>&lt;P&gt;The 64 library is for using long int and not 64 arch. I also checked it applies to 32 bit system.&lt;/P&gt;</description>
      <pubDate>Wed, 24 Jul 2013 11:56:56 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-Library-and-DLLEXPORT/m-p/958285#M15656</guid>
      <dc:creator>Mohammad_K_</dc:creator>
      <dc:date>2013-07-24T11:56:56Z</dc:date>
    </item>
    <item>
      <title>&gt;&gt;...The 64 library is for</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-Library-and-DLLEXPORT/m-p/958286#M15657</link>
      <description>&amp;gt;&amp;gt;...The 64 library is for using long int and not 64 arch. I also checked it applies to 32 bit system...

MKL's &lt;STRONG&gt;long int&lt;/STRONG&gt; data type is declared in &lt;STRONG&gt;mkl_types.h&lt;/STRONG&gt; header file as follows:

...
/* MKL integer types for LP64 and ILP64 */
#if (!defined(__INTEL_COMPILER)) &amp;amp; defined(_MSC_VER)
    #define MKL_INT64 __int64
    #define MKL_UINT64 unsigned __int64
#else
    #define MKL_INT64 long long int
    #define MKL_UINT64 unsigned long long int
#endif

#ifdef MKL_ILP64

/* MKL ILP64 integer types */
#ifndef MKL_INT
    #define MKL_INT MKL_INT64
#endif
#ifndef MKL_UINT
    #define MKL_UINT MKL_UINT64
#endif
#define MKL_LONG MKL_INT64

#else

/* MKL LP64 integer types */
#ifndef MKL_INT
    #define MKL_INT int
#endif
#ifndef MKL_UINT
    #define MKL_UINT unsigned int
#endif
#define MKL_LONG long int

#endif
...

and it is Not clear for me why you're using the library. These declarations are needed for compilation and they are Not needed for linking.</description>
      <pubDate>Wed, 24 Jul 2013 12:20:10 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-Library-and-DLLEXPORT/m-p/958286#M15657</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2013-07-24T12:20:10Z</dc:date>
    </item>
    <item>
      <title>Quote:Mohammad K. wrote:</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-Library-and-DLLEXPORT/m-p/958287#M15658</link>
      <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;Mohammad K. wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;
&lt;P&gt;The 64 library is for using long int and not 64 arch. I also checked it applies to 32 bit system.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;
&lt;P&gt;With few exceptions (Pardiso being one), there is no provision for calling MKL routines with 64-bit integer arguments from 32-bit code. Such calls would require at least two versions for each MKL routine that takes one or more integer arguments. Multiple library routines of this nature are not provided in 32-bit MKL. The ILP64 and LP64 MKL libraries contain 64-bit code segments, and they cannot be linked to 32-bit code.&lt;/P&gt;
&lt;P&gt;By redefining preprocessor symbols such as MKL_INT, it it possible to deceive the compiler and make it behave as if code using 64-bit integers ought to work on the IA32 platform, but code compiled this way will always result in link time failures.&lt;/P&gt;</description>
      <pubDate>Wed, 24 Jul 2013 14:39:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-Library-and-DLLEXPORT/m-p/958287#M15658</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2013-07-24T14:39:00Z</dc:date>
    </item>
    <item>
      <title>Steve,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-Library-and-DLLEXPORT/m-p/958288#M15659</link>
      <description>&lt;P&gt;Steve,&lt;/P&gt;
&lt;P&gt;I set the path to the MKL libraries in the command prompt using mklvars.bat. I also set net beans to point the java library path to the MKL path&lt;/P&gt;
&lt;P&gt;C:\Program Files\Intel\Composer XE 2013\mkl\lib\ia32&lt;/P&gt;
&lt;P&gt;But the error of loading the library is not resolved. Any ideas?&lt;/P&gt;
&lt;P&gt;Thanks,&lt;/P&gt;
&lt;P&gt;Mohammad&lt;/P&gt;</description>
      <pubDate>Wed, 24 Jul 2013 23:37:39 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-Library-and-DLLEXPORT/m-p/958288#M15659</guid>
      <dc:creator>Mohammad_K_</dc:creator>
      <dc:date>2013-07-24T23:37:39Z</dc:date>
    </item>
    <item>
      <title>I don't know anything about</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-Library-and-DLLEXPORT/m-p/958289#M15660</link>
      <description>&lt;P&gt;I don't know anything about Netbeans. Did you start Java from the MKL command prompt?&amp;nbsp; I was suggesting editing the system PATH using Computer &amp;gt; Properties &amp;gt; Advanced &amp;gt; Environment Variables.&lt;/P&gt;</description>
      <pubDate>Thu, 25 Jul 2013 01:33:23 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-Library-and-DLLEXPORT/m-p/958289#M15660</guid>
      <dc:creator>Steven_L_Intel1</dc:creator>
      <dc:date>2013-07-25T01:33:23Z</dc:date>
    </item>
    <item>
      <title>&gt;&gt;C:\Program Files\Intel</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-Library-and-DLLEXPORT/m-p/958290#M15661</link>
      <description>&amp;gt;&amp;gt;C:\Program Files\Intel\Composer XE 2013\mkl\lib\ia32

This is the path to dynamic link libaries. If you execute an MS-DOS command &lt;STRONG&gt;dir *.lib&lt;/STRONG&gt; it will show something like this:

31/08/2012  08:30 AM            31,208 mkl_blacs_dll.lib
31/08/2012  08:27 AM           409,086 mkl_blacs_intelmpi.lib
31/08/2012  08:26 AM           408,592 mkl_blacs_mpich2.lib
31/08/2012  07:57 AM           234,498 mkl_blas95.lib
31/08/2012  08:30 AM            79,154 mkl_cdft_core.lib
31/08/2012  08:31 AM            11,108 mkl_cdft_core_dll.lib
31/08/2012  08:07 AM       184,012,776 mkl_core.lib
18/12/2008  02:14 PM               986 mkl_core_dll.lib
31/08/2012  08:06 AM         8,065,526 mkl_intel_c.lib
31/08/2012  08:24 AM         8,223,846 mkl_intel_c_dll.lib
31/08/2012  08:06 AM         4,573,378 mkl_intel_s.lib
31/08/2012  08:24 AM         4,732,946 mkl_intel_s_dll.lib
31/08/2012  08:07 AM         8,907,124 mkl_intel_thread.lib
31/08/2012  08:23 AM           738,540 mkl_intel_thread_dll.lib
31/08/2012  07:31 AM         3,985,884 mkl_lapack95.lib
31/08/2012  08:07 AM         8,122,758 mkl_pgi_thread.lib
31/08/2012  08:23 AM           732,288 mkl_pgi_thread_dll.lib
31/08/2012  08:24 AM         3,027,402 mkl_rt.lib
31/08/2012  08:45 AM         6,240,934 mkl_scalapack_core.lib
31/08/2012  08:45 AM           495,478 mkl_scalapack_core_dll.li
31/08/2012  08:07 AM         2,556,066 mkl_sequential.lib
31/08/2012  08:23 AM           731,986 mkl_sequential_dll.lib
23/07/2009  03:38 PM               440 mkl_solver.lib
23/07/2009  03:38 PM               440 mkl_solver_sequential.lib

Some of these dynamic link libraries are needed for the Linker and all of them are Not executable modules.

&amp;gt;&amp;gt;
&amp;gt;&amp;gt;But the error of loading the library is not resolved. Any ideas?

You need to verify that in case of a 32-bit test application a path to that directory is set:

C:\Program Files\Intel\Composer XE 2013\Redist\ia32\mkl

In that directory ( and sub-directories ) all MKL DLLs for 32-bit Windows platforms are located.</description>
      <pubDate>Thu, 25 Jul 2013 03:04:16 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-Library-and-DLLEXPORT/m-p/958290#M15661</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2013-07-25T03:04:16Z</dc:date>
    </item>
    <item>
      <title>Steve,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-Library-and-DLLEXPORT/m-p/958291#M15662</link>
      <description>&lt;P&gt;Steve,&lt;/P&gt;
&lt;P&gt;I am not using the MKL command prompt to generate the library. I am using the Visual Studio 2012 that comes with Intel Fortran Composer. I was able to compile and link an application that calls the same program. It is the dynamic linking that is not working. Is there an Intel document that describes in detail what are the settings needed in Visual Studio in terms of libraries, include paths, etc to generate a DLL library which can be called from Java? Also I was able to do this for Fortran DLL that is not dependent on MKL, so that only settings are MKL libraries? I tried using the MKL link adviser and inserted all dependent libraries that are needed but still I'm getting an error that the module is not found. Thanks for your help.&lt;/P&gt;
&lt;P&gt;Mohammad&lt;/P&gt;</description>
      <pubDate>Thu, 25 Jul 2013 03:27:09 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-Library-and-DLLEXPORT/m-p/958291#M15662</guid>
      <dc:creator>Mohammad_K_</dc:creator>
      <dc:date>2013-07-25T03:27:09Z</dc:date>
    </item>
    <item>
      <title>Sergey,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-Library-and-DLLEXPORT/m-p/958292#M15663</link>
      <description>&lt;P&gt;Sergey,&lt;/P&gt;
&lt;P&gt;It seems this path need to be set in the application running the Java code. I am using Netbeans to run my java application. Do you know how I can set the java library path to the MKL library path? I tried setting in the VM options under run in Netbeans&lt;/P&gt;
&lt;P&gt;-Djava.library.path="C:\Program Files\Intel\Composer XE 2013\mkl\lib\ia32"&lt;/P&gt;
&lt;P&gt;But this didn't work.&lt;/P&gt;
&lt;P&gt;Thanks,&lt;/P&gt;
&lt;P&gt;Mohammad&lt;/P&gt;</description>
      <pubDate>Thu, 25 Jul 2013 03:31:31 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-Library-and-DLLEXPORT/m-p/958292#M15663</guid>
      <dc:creator>Mohammad_K_</dc:creator>
      <dc:date>2013-07-25T03:31:31Z</dc:date>
    </item>
    <item>
      <title>&gt;&gt;...Exception in thread</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-Library-and-DLLEXPORT/m-p/958293#M15664</link>
      <description>&amp;gt;&amp;gt;...Exception in thread "main" &lt;STRONG&gt;java&lt;/STRONG&gt;.lang.UnsatisfiedLinkError: Unable to load library...

Let me know if you need a small test case which uses &lt;STRONG&gt;Java Native Interface&lt;/STRONG&gt; ( JNI ) technology and a couple of &lt;STRONG&gt;MKL&lt;/STRONG&gt; functions.</description>
      <pubDate>Thu, 25 Jul 2013 03:31:54 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-Library-and-DLLEXPORT/m-p/958293#M15664</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2013-07-25T03:31:54Z</dc:date>
    </item>
    <item>
      <title>&gt;&gt;...Is there an Intel</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-Library-and-DLLEXPORT/m-p/958294#M15665</link>
      <description>&amp;gt;&amp;gt;...Is there an Intel document that describes in detail what are the settings needed in Visual Studio in terms of libraries,
&amp;gt;&amp;gt;include paths, etc to generate a DLL library which can be called from Java?

1. Take a look at Sticky Posts on MKL Forum.

2. Take a look at &lt;STRONG&gt;Java Native Interface&lt;/STRONG&gt; technology ( there are lots of documents online ).</description>
      <pubDate>Thu, 25 Jul 2013 04:37:38 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-Library-and-DLLEXPORT/m-p/958294#M15665</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2013-07-25T04:37:38Z</dc:date>
    </item>
    <item>
      <title>&gt;&gt;...I tried setting in the</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-Library-and-DLLEXPORT/m-p/958295#M15666</link>
      <description>&amp;gt;&amp;gt;...I tried setting in the VM options under run in Netbeans
&amp;gt;&amp;gt;
&amp;gt;&amp;gt;-Djava.library.path="C:\Program Files\Intel\Composer XE 2013\mkl\lib\ia32"
&amp;gt;&amp;gt;
&amp;gt;&amp;gt;But this didn't work.

Here is example of how I use Java VM ( from MS-DOS command prompt ) in my JNI test application with a C dynamic link library built with Visual Studio 2005 Professional Edition ( any latest versions of VS will build it as well ):

...
@&lt;STRONG&gt;java.exe&lt;/STRONG&gt; -classpath C:\WorkEnv\TestApps\JavaNITest\HelloWorld HelloWorld
...

Java VM loads &lt;STRONG&gt;HelloWorld.class&lt;/STRONG&gt; into memory, then it loads &lt;STRONG&gt;HelloWorldDll.dll&lt;/STRONG&gt; into memory and after all initializations are completed &lt;STRONG&gt;Java_HelloWorld_displayHelloWorld&lt;/STRONG&gt; proxy function is executed. That function is declared as follows:
...
JNIEXPORT void JNICALL &lt;STRONG&gt;Java_HelloWorld_displayHelloWorld&lt;/STRONG&gt;( JNIEnv *env, jobject obj );
...

Output is as follows:
...
C:\WorkEnv\TestApps\JavaNITest\HelloWorld&amp;gt;Run.bat

&lt;STRONG&gt;Hello Java Native Interface!&lt;/STRONG&gt;
...</description>
      <pubDate>Thu, 25 Jul 2013 04:51:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-Library-and-DLLEXPORT/m-p/958295#M15666</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2013-07-25T04:51:00Z</dc:date>
    </item>
    <item>
      <title>Here is additional</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-Library-and-DLLEXPORT/m-p/958296#M15667</link>
      <description>Here is additional information for MKL DLLs.

For example, the following sets of MKL DLLs are needed for systems with different CPUs:

&lt;STRONG&gt;[ Intel Core i7 CPU ]&lt;/STRONG&gt;

mkl_rt.dll
mkl_intel_thread.dll
mkl_core.dll
mkl_avx.dll

&lt;STRONG&gt;[ Default CPU ]&lt;/STRONG&gt;

mkl_rt.dll
mkl_intel_thread.dll
mkl_core.dll
mkl_def.dll

&lt;STRONG&gt;[ Intel Pentium 4 CPU ]&lt;/STRONG&gt;

mkl_rt.dll
mkl_intel_thread.dll
mkl_core.dll
mkl_p4.dl</description>
      <pubDate>Thu, 25 Jul 2013 04:55:45 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-Library-and-DLLEXPORT/m-p/958296#M15667</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2013-07-25T04:55:45Z</dc:date>
    </item>
    <item>
      <title>Here is a working test case</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-Library-and-DLLEXPORT/m-p/958297#M15668</link>
      <description>Here is a working test case and you could use it ( once again, take a look at JNI examples in Java SDK ( v1.4, v1.5, v1.6, etc) ):

...
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// HelloWorldImp.c

#include "Stdafx.h"
#include "HelloWorld.h"

JNIEXPORT void JNICALL &lt;STRONG&gt;Java_HelloWorld_displayHelloWorld&lt;/STRONG&gt;( JNIEnv *env, jobject obj )
{
	printf( "Hello Java Native Interface!\n" );
	printf( "Hello Intel MKL!\n" );

	#ifdef _DEBUG
	printf( "Win32 Debug Configuration\n" );
	#else
	printf( "Win32 Release Configuration\n" );
	#endif

	HMODULE hMklRtDll = NULL;

	void ( *pfMklGetVersionString )( char *, int ) = NULL;
	void ( *pfMklGetVersion )( MKLVersion * ) = NULL;

	bool bOk = false;

	while( true )
	{
		hMklRtDll = ::LoadLibrary( _T("mkl_rt.dll") );
		if( hMklRtDll == NULL )
			break;

		_tprintf( _T("Dynamic library mkl_rt.dll loaded\n") );

		pfMklGetVersionString = ( void ( * )( char *, int ) )::GetProcAddress( hMklRtDll, "MKL_Get_Version_String" );
		if( pfMklGetVersionString == NULL )
			break;

		pfMklGetVersion = ( void ( * )( MKLVersion * ) )::GetProcAddress( hMklRtDll, "MKL_Get_Version" );
		if( pfMklGetVersion == NULL )
			break;

		_tprintf( _T("MKL Initialization Done\n") );

		bOk = true;
		break;
	}

	if( bOk == true )
	{
		_tprintf( "\n" );

		MKLVersion Ver = { 0x0 };
		int iLenData = 256;
		char szVerData[256] = { 0x0 };

		pfMklGetVersionString( szVerData, iLenData );
		_tprintf( "\t%s\n", szVerData );

		pfMklGetVersion( &amp;amp;Ver );
		_tprintf( "\tMajor version         : %d\n", Ver.MajorVersion );
		_tprintf( "\tMinor version         : %d\n", Ver.MinorVersion );
		_tprintf( "\tUpdate version        : %d\n", Ver.UpdateVersion );
		_tprintf( "\tProduct status        : %s\n", Ver.ProductStatus );
		_tprintf( "\tBuild                 : %s\n", Ver.Build );
	//	_tprintf( "\tProcessor optimization: %s\n", Ver.Processor );

		_tprintf( "\n" );
	}
	else
		_tprintf( _T("MKL Initialization Failed\n") );

	if( hMklRtDll != NULL )
	{
		::FreeLibrary( hMklRtDll );
		hMklRtDll = NULL;

		_tprintf( _T("Dynamic library mkl_rt.dll unloaded\n") );
	}
}
...</description>
      <pubDate>Fri, 26 Jul 2013 00:21:13 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-Library-and-DLLEXPORT/m-p/958297#M15668</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2013-07-26T00:21:13Z</dc:date>
    </item>
    <item>
      <title>This is how output looks like</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-Library-and-DLLEXPORT/m-p/958298#M15669</link>
      <description>This is how output looks like:

...
..\JavaNITest\HelloWorldDll\Release&amp;gt;Run.bat

Hello Java Native Interface!
Hello Intel MKL!
Win32 Release Configuration
Dynamic library mkl_rt.dll loaded
MKL Initialization Done

        Intel(R) Math Kernel Library Version 10.3.12 Product Build 20120831 for 32-bit applications
        Major version         : 10
        Minor version         : 3
        Update version        : 12
        Product status        : Product
        Build                 : 20120831

Dynamic library mkl_rt.dll unloaded
...</description>
      <pubDate>Fri, 26 Jul 2013 00:23:15 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-Library-and-DLLEXPORT/m-p/958298#M15669</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2013-07-26T00:23:15Z</dc:date>
    </item>
  </channel>
</rss>

