title: unresolved external symbol __imp__JNI_CreateJavaVM@12 referenced
body: <p>I want to write a C++ program which calls Java method.</p>
  
  <p>I am trying to invoke a Java function from C++. As described here </p>
  
  <p><a href="http://docs.oracle.com/javase/6/docs/technotes/guides/jni/spec/invocation.html" rel="nofollow">http://docs.oracle.com/javase/6/docs/technotes/guides/jni/spec/invocation.html</a></p>
  
  <p>but I get this error while debugging and can not handle it. 
  I m using Visual studio 2012.
  Here is my code C++ code. </p>
  
  <pre><code>#include "stdafx.h"
  #include &lt;jni.h&gt;       /* where everything is defined */
  
  using namespace std;
  
  int _tmain(int argc, _TCHAR* argv[])
  {
  JavaVM *jvm;       /* denotes a Java VM */
  JNIEnv *env;       /* pointer to native method interface */
  JavaVMInitArgs vm_args; /* JDK/JRE 6 VM initialization arguments */
  JavaVMOption* options = new JavaVMOption[1];
  options[0].optionString = "-Djava.class.path=C:\\Users\\yv\\workspace\\JNI\\bin";    // my class is under this directory. 
  
  vm_args.version = 0x00010006; 
  vm_args.nOptions = 1;
  vm_args.options = options;
  vm_args.ignoreUnrecognized = false;
  
  /* load and initialize a Java VM, return a JNI interface
   * pointer in env */
  JNI_CreateJavaVM(&amp;jvm, (void **)&amp;env, &amp;vm_args);  // I got err msg "cannot convert parameter 2 from 'JNIEnv **' to 'void **' " so added (void **) as described in some other sources    
  
  delete options;
  jvm-&gt;DestroyJavaVM();
  
  
  return 0;
  }
  </code></pre>
  
  <p>Java installed on my comp version is
  C:\Users\yv>JAVA -version
  java version "1.7.0_17"
  Java(TM) SE Runtime Environment (build 1.7.0_17-b02)
  Java HotSpot(TM) 64-Bit Server VM (build 23.7-b01, mixed mode)</p>
  
  <p>and my java code in case of need. </p>
  
  <pre><code>public class jniClass {
  /**
   * @param args
   */
  public static void main(String[] args) {
      // TODO Auto-generated method stub
      System.out.println("Hello, World!");
      System.out.println("Arguments sent to this program:");
      if (args.length == 0) {
          System.out.println("(None)");
      } else {
          for (int i=0; i&lt;args.length; i++) {
              System.out.print(args[i] + " ");
          }
          System.out.println();
      }
  }
  }
  </code></pre>