<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[jni]]></title><description><![CDATA[<p>moin,</p>
<p>ich will in c die jvm starten. neanleitung gibts hier : <a href="http://java.sun.com/j2se/1.5.0/docs/guide/jni/spec/invocation.html" rel="nofollow">http://java.sun.com/j2se/1.5.0/docs/guide/jni/spec/invocation.html</a></p>
<p>der bsp. code ist zwar ausnem anderen beispiel aber irgendwie entsteht der erste fehler immer wegen den invocation API functions und weiter kann ichs dann nie testen.</p>
<pre><code>#include &quot;stdafx.h&quot;
#include &quot;jni.h&quot;
#include &lt;stdio.h&gt;

int main(int argc, char* argv[])
{
    JavaVMInitArgs vm_args;
    JavaVMOption options[ 1 ];
    JavaVM *vm;
    JNIEnv *env;

    options[ 0 ].optionString = &quot;-Djava.class.path=.&quot;;
    vm_args.options = options;
    vm_args.nOptions = 1;
    vm_args.version = JNI_VERSION_1_4;
    int res = JNI_CreateJavaVM( &amp;vm, (void **)&amp;env, &amp;vm_args);

  return 0;
}
</code></pre>
<p>Fehlermeldung:</p>
<p>LINK : E:\c_progs\nativ_c\Debug\nativ_c.exe wurde nicht gefunden oder beim letzten inkrementellen Verknüpfungsvorgang nicht erstellt; vollständige Verknüpfung wird durchgeführt.<br />
nativ_c.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol &quot;__imp__JNI_CreateJavaVM@12&quot; in Funktion &quot;_main&quot;.<br />
E:\c_progs\nativ_c\Debug\nativ_c.exe : fatal error LNK1120: 1 nicht aufgelöste externe Verweise.<br />
Das Buildprotokoll wurde unter &quot;file://e:\c_progs\nativ_c\nativ_c\Debug\BuildLog.htm&quot; gespeichert.<br />
nativ_c - 2 Fehler, 0 Warnung(en)</p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/162211/jni</link><generator>RSS for Node</generator><lastBuildDate>Sat, 12 Sep 2026 04:44:14 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/162211.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 16 Oct 2006 11:47:08 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to jni on Mon, 16 Oct 2006 11:47:08 GMT]]></title><description><![CDATA[<p>moin,</p>
<p>ich will in c die jvm starten. neanleitung gibts hier : <a href="http://java.sun.com/j2se/1.5.0/docs/guide/jni/spec/invocation.html" rel="nofollow">http://java.sun.com/j2se/1.5.0/docs/guide/jni/spec/invocation.html</a></p>
<p>der bsp. code ist zwar ausnem anderen beispiel aber irgendwie entsteht der erste fehler immer wegen den invocation API functions und weiter kann ichs dann nie testen.</p>
<pre><code>#include &quot;stdafx.h&quot;
#include &quot;jni.h&quot;
#include &lt;stdio.h&gt;

int main(int argc, char* argv[])
{
    JavaVMInitArgs vm_args;
    JavaVMOption options[ 1 ];
    JavaVM *vm;
    JNIEnv *env;

    options[ 0 ].optionString = &quot;-Djava.class.path=.&quot;;
    vm_args.options = options;
    vm_args.nOptions = 1;
    vm_args.version = JNI_VERSION_1_4;
    int res = JNI_CreateJavaVM( &amp;vm, (void **)&amp;env, &amp;vm_args);

  return 0;
}
</code></pre>
<p>Fehlermeldung:</p>
<p>LINK : E:\c_progs\nativ_c\Debug\nativ_c.exe wurde nicht gefunden oder beim letzten inkrementellen Verknüpfungsvorgang nicht erstellt; vollständige Verknüpfung wird durchgeführt.<br />
nativ_c.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol &quot;__imp__JNI_CreateJavaVM@12&quot; in Funktion &quot;_main&quot;.<br />
E:\c_progs\nativ_c\Debug\nativ_c.exe : fatal error LNK1120: 1 nicht aufgelöste externe Verweise.<br />
Das Buildprotokoll wurde unter &quot;file://e:\c_progs\nativ_c\nativ_c\Debug\BuildLog.htm&quot; gespeichert.<br />
nativ_c - 2 Fehler, 0 Warnung(en)</p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1155649</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1155649</guid><dc:creator><![CDATA[nameac]]></dc:creator><pubDate>Mon, 16 Oct 2006 11:47:08 GMT</pubDate></item><item><title><![CDATA[Reply to jni on Mon, 16 Oct 2006 11:56:15 GMT]]></title><description><![CDATA[<p>Erstens: Bereinige mal dein Projekt.</p>
<p>Zweitens: Du mußt dem Linker noch die JNI-Library mit übergeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1155655</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1155655</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 16 Oct 2006 11:56:15 GMT</pubDate></item><item><title><![CDATA[Reply to jni on Mon, 16 Oct 2006 11:56:58 GMT]]></title><description><![CDATA[<p>Es sieht so aus, als hättest Du Dich in der Programmiersprache geirrt. Der Header stdafx.h ist meiner Meinung nach unter C nicht benutzbar. Ich nehme an, Du hast einen C++-Compiler benutzt. Und es sieht so aus, als wäre jni.h nicht &quot;C++-fest&quot;. Das Symbol sieht so aus, als hätte der C++-Compiler sein name-mangling gemacht, was in einer C-API nicht benutzbar ist. Versuche doch mal ein extern &quot;C&quot; um den jni.h zu packen:</p>
<pre><code class="language-cpp">extern &quot;C&quot; {
#include &lt;jni.h&gt;
}
</code></pre>
<p>Ist nur so eine Vermutung.</p>
<p>Tntnet</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1155656</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1155656</guid><dc:creator><![CDATA[tntnet]]></dc:creator><pubDate>Mon, 16 Oct 2006 11:56:58 GMT</pubDate></item><item><title><![CDATA[Reply to jni on Mon, 16 Oct 2006 12:12:52 GMT]]></title><description><![CDATA[<p>also wenn ich den blok den du gepostet hast als erste zeile einbinde ändert sich die fehlermeldung :</p>
<pre><code>e:\c_progs\nativ_c\nativ_c\nativ_c.cpp(16) : error C2065: 'JavaVMInitArgs': nichtdeklarierter Bezeichner
e:\c_progs\nativ_c\nativ_c\nativ_c.cpp(16) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'vm_args'
e:\c_progs\nativ_c\nativ_c\nativ_c.cpp(16) : error C2065: 'vm_args': nichtdeklarierter Bezeichner
e:\c_progs\nativ_c\nativ_c\nativ_c.cpp(17) : error C2065: 'JavaVMOption': nichtdeklarierter Bezeichner
e:\c_progs\nativ_c\nativ_c\nativ_c.cpp(17) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'options'
e:\c_progs\nativ_c\nativ_c\nativ_c.cpp(17) : error C2065: 'options': nichtdeklarierter Bezeichner
e:\c_progs\nativ_c\nativ_c\nativ_c.cpp(18) : error C2065: 'JavaVM': nichtdeklarierter Bezeichner
e:\c_progs\nativ_c\nativ_c\nativ_c.cpp(18) : error C2065: 'vm': nichtdeklarierter Bezeichner
e:\c_progs\nativ_c\nativ_c\nativ_c.cpp(19) : error C2065: 'JNIEnv': nichtdeklarierter Bezeichner
e:\c_progs\nativ_c\nativ_c\nativ_c.cpp(19) : error C2065: 'env': nichtdeklarierter Bezeichner
e:\c_progs\nativ_c\nativ_c\nativ_c.cpp(21) : error C2228: Links von &quot;.optionString&quot; muss sich eine Klasse/Struktur/Union befinden.
e:\c_progs\nativ_c\nativ_c\nativ_c.cpp(22) : error C2228: Links von &quot;.options&quot; muss sich eine Klasse/Struktur/Union befinden.
        Typ ist ''unknown-type''
e:\c_progs\nativ_c\nativ_c\nativ_c.cpp(23) : error C2228: Links von &quot;.nOptions&quot; muss sich eine Klasse/Struktur/Union befinden.
        Typ ist ''unknown-type''
e:\c_progs\nativ_c\nativ_c\nativ_c.cpp(24) : error C2228: Links von &quot;.version&quot; muss sich eine Klasse/Struktur/Union befinden.
        Typ ist ''unknown-type''
e:\c_progs\nativ_c\nativ_c\nativ_c.cpp(24) : error C2065: 'JNI_VERSION_1_4': nichtdeklarierter Bezeichner
e:\c_progs\nativ_c\nativ_c\nativ_c.cpp(25) : error C3861: &quot;JNI_CreateJavaVM&quot;: Bezeichner wurde nicht gefunden.
Das Buildprotokoll wurde unter &quot;file://e:\c_progs\nativ_c\nativ_c\Debug\BuildLog.htm&quot; gespeichert.
nativ_c - 16 Fehler, 0 Warnung(en)
</code></pre>
<p>bei anderen varianten bleibt alles gleich wie vorher <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1155664</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1155664</guid><dc:creator><![CDATA[nameac]]></dc:creator><pubDate>Mon, 16 Oct 2006 12:12:52 GMT</pubDate></item><item><title><![CDATA[Reply to jni on Mon, 16 Oct 2006 12:16:36 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/10318">@Cstoll</a> welche library meinst du etwa die jni.h ???</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/9578">@tntnet</a> ich benutze als compiler vs_2005</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1155667</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1155667</guid><dc:creator><![CDATA[nameac]]></dc:creator><pubDate>Mon, 16 Oct 2006 12:16:36 GMT</pubDate></item><item><title><![CDATA[Reply to jni on Mon, 16 Oct 2006 12:20:20 GMT]]></title><description><![CDATA[<p>nameac schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/10318">@Cstoll</a> welche library meinst du etwa die jni.h ???</p>
</blockquote>
<p>Nein, dazu sollte auch noch eine jni.lib gehören - die braucht der Linker.</p>
<p>(und tntnet's Code solltest du vermutlich anstelle des #include &quot;jni.h&quot; hinsetzen)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1155672</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1155672</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 16 Oct 2006 12:20:20 GMT</pubDate></item><item><title><![CDATA[Reply to jni on Mon, 16 Oct 2006 12:56:51 GMT]]></title><description><![CDATA[<p>jo wo find ich denn die lib.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1155701</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1155701</guid><dc:creator><![CDATA[nameac]]></dc:creator><pubDate>Mon, 16 Oct 2006 12:56:51 GMT</pubDate></item><item><title><![CDATA[Reply to jni on Mon, 16 Oct 2006 13:37:50 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/10318">@CStoll</a> sag doch mal bitte wo ich die lib finde, ich weiß zwar was du meinst aber als ich ne dll für java erstellte, also den umgekehrte weg braucht ich keine extra lib einbinden da ging ich davon aus das die libraries in den standard pfaden liegen, naja hat auch geklappt. wäre trotzdem coll wenn du mir das genauer erläutern könntest wo ich diese &quot;jni.lib&quot; finden soll. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1155734</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1155734</guid><dc:creator><![CDATA[nameac]]></dc:creator><pubDate>Mon, 16 Oct 2006 13:37:50 GMT</pubDate></item><item><title><![CDATA[Reply to jni on Mon, 16 Oct 2006 14:10:48 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Lies mal das hier. Vielleicht bringt dich das weiter<br />
<a href="http://www.haertfelder.com/jni.html" rel="nofollow">http://www.haertfelder.com/jni.html</a><br />
Du mußt anscheinend mit dem JNI-SDK eine projektspezifische Lib erzeugen, und die dann einbinden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1155761</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1155761</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Mon, 16 Oct 2006 14:10:48 GMT</pubDate></item><item><title><![CDATA[Reply to jni on Tue, 17 Oct 2006 07:38:11 GMT]]></title><description><![CDATA[<p>sorry braunstein aber was du mir da rausgesucht hast ist genau der andere weg der bestens funzt, c aus java heraus aufrufen.</p>
<p>aber leider das falsche <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1156036</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1156036</guid><dc:creator><![CDATA[nameac]]></dc:creator><pubDate>Tue, 17 Oct 2006 07:38:11 GMT</pubDate></item><item><title><![CDATA[Reply to jni on Tue, 17 Oct 2006 07:48:06 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/10318">@CStoll</a> alles klar habs gefunden war übrigens ne dll kleiner unterschied meinste nich</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1156045</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1156045</guid><dc:creator><![CDATA[nameac]]></dc:creator><pubDate>Tue, 17 Oct 2006 07:48:06 GMT</pubDate></item><item><title><![CDATA[Reply to jni on Tue, 17 Oct 2006 07:49:53 GMT]]></title><description><![CDATA[<p>Schon mal ausprobiert ?<br />
Eine DLL wird jedenfalls gegen Linkerfehler nicht helfen....</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1156049</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1156049</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Tue, 17 Oct 2006 07:49:53 GMT</pubDate></item><item><title><![CDATA[Reply to jni on Tue, 17 Oct 2006 07:55:59 GMT]]></title><description><![CDATA[<p>nameac schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/10318">@CStoll</a> sag doch mal bitte wo ich die lib finde,</p>
</blockquote>
<p>So gut kenne ich mich mit JNI auch nicht aus <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> Ich weiß nur, daß die Funktionen üblicherweise in LIBs implementiert sind (außer inline-Funktionen) - und die sollte der Anbieter normalerweise mitliefern.<br />
(kann höchstens noch sein, daß du irgendwo eine jni.cpp hast, die du selber compilieren sollst, um die lib zu bekommen)</p>
<blockquote>
<p>ich weiß zwar was du meinst aber als ich ne dll für java erstellte, also den umgekehrte weg braucht ich keine extra lib einbinden da ging ich davon aus das die libraries in den standard pfaden liegen, naja hat auch geklappt. wäre trotzdem coll wenn du mir das genauer erläutern könntest wo ich diese &quot;jni.lib&quot; finden soll. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
</blockquote>
<p>Java arbeitet ja auch nicht mit LIBs <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1156056</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1156056</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 17 Oct 2006 07:55:59 GMT</pubDate></item><item><title><![CDATA[Reply to jni on Tue, 17 Oct 2006 07:56:07 GMT]]></title><description><![CDATA[<p>ne noch nich bin dabei sie hies jvm.dll und hilft bei linker fehlern weil da steht ja der nötige objectcode zur reference drin. ich meld mich fals geklappt hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1156057</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1156057</guid><dc:creator><![CDATA[nameac]]></dc:creator><pubDate>Tue, 17 Oct 2006 07:56:07 GMT</pubDate></item><item><title><![CDATA[Reply to jni on Tue, 17 Oct 2006 08:05:07 GMT]]></title><description><![CDATA[<p>nameac schrieb:</p>
<blockquote>
<p>ne noch nich bin dabei sie hies jvm.dll und hilft bei linker fehlern weil da steht ja der nötige objectcode zur reference drin. ich meld mich fals geklappt hat.</p>
</blockquote>
<p>Sie hilft aber trotzdem nicht bei Linkerfehlern, weil diese Referenzen erst zur Laufzeit aufgelöst werden ... und deshalb brauchst Du beim Linken trotzdem noch eine Lib, die dem Linker das mitteilt.<br />
Oftmals ist das eine lib mit demselben Namen wie die DLL. Alternativ kannst Du Dir das auch selbst basteln, indem Du selbst (per &quot;GetModul..()&quot; o.ä. - WINAPI-Funtionen) die Calls kapselst ... aber das macht nicht wirklich Spaß.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1156062</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1156062</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Tue, 17 Oct 2006 08:05:07 GMT</pubDate></item><item><title><![CDATA[Reply to jni on Tue, 17 Oct 2006 08:23:11 GMT]]></title><description><![CDATA[<pre><code>#include &quot;stdafx.h&quot; 
#include &quot;jni.h&quot; 
#include &quot;windows.h&quot; 

typedef jint (WINAPI* JNI_CREATEJAVAVM)(JavaVM **pvm, void ** penv, void *args); 

int main(int argc, char* argv[]) 
{ 
   JavaVMInitArgs vm_args; 
   JavaVMOption options[10]; 

   options[0].optionString = &quot;-Djava.compiler=NONE&quot;; 
   options[1].optionString = &quot;-Djava.class.path=.&quot;; 

   vm_args.version  = JNI_VERSION_1_4; 
   vm_args.nOptions = 2; 
   vm_args.options  = options; 
   vm_args.ignoreUnrecognized = false; 

   JNI_CREATEJAVAVM JNI_CreateJavaVM = 0; 

   HMODULE hLib = LoadLibrary(&quot;E:/c_progs/nativ_c/native_c/jvm.dll&quot;); 

   JavaVM* jvm; 
   JNIEnv* env; 
   JNI_CreateJavaVM = (JNI_CREATEJAVAVM) GetProcAddress(hLib, &quot;JNI_CreateJavaVM&quot;); 

   long status  = JNI_CreateJavaVM(&amp;jvm, (void**) &amp;env, &amp;vm_args); 
   if  (status != JNI_OK) 
   { 
      printf(&quot;Failed creating JVM. Error: %d\r\n&quot;, status); 
   } 
   else 
   { 
      printf(&quot;JVM created\r\n&quot;); 
   } 
   return 0; 
}
</code></pre>
<p>fehlermeldung:</p>
<p>e:\c_progs\nativ_c\nativ_c\nativ_c.cpp(25) : error C2664: 'LoadLibraryW': Konvertierung des Parameters 1 von 'const char [36]' in 'LPCWSTR' nicht möglich<br />
Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.<br />
Das Buildprotokoll wurde unter &quot;file://e:\c_progs\nativ_c\nativ_c\Debug\BuildLog.htm&quot; gespeichert.<br />
nativ_c - 1 Fehler, 0 Warnung(en)</p>
<p>mit \\ hab ich es auch schon probiert <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1156076</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1156076</guid><dc:creator><![CDATA[nameac]]></dc:creator><pubDate>Tue, 17 Oct 2006 08:23:11 GMT</pubDate></item><item><title><![CDATA[Reply to jni on Tue, 17 Oct 2006 08:29:48 GMT]]></title><description><![CDATA[<p>nameac schrieb:</p>
<blockquote>
<p>e:\c_progs\nativ_c\nativ_c\nativ_c.cpp(25) : error C2664: 'LoadLibraryW': Konvertierung des Parameters 1 von 'const char [36]' in 'LPCWSTR' nicht möglich<br />
Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.<br />
Das Buildprotokoll wurde unter &quot;file://e:\c_progs\nativ_c\nativ_c\Debug\BuildLog.htm&quot; gespeichert.<br />
nativ_c - 1 Fehler, 0 Warnung(en)</p>
</blockquote>
<p>Ein Wort: UNICODE (wenn du Google oder die Suchfunktion benutzt, erfährst du mehr zu dem Thema)</p>
<p>Als Lösung:</p>
<pre><code class="language-cpp">HMODULE hLib = LoadLibrary(_T(&quot;E:/c_progs/nativ_c/native_c/jvm.dll&quot;));
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1156080</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1156080</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 17 Oct 2006 08:29:48 GMT</pubDate></item><item><title><![CDATA[Reply to jni on Tue, 17 Oct 2006 08:31:29 GMT]]></title><description><![CDATA[<p>jo danke <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1156083</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1156083</guid><dc:creator><![CDATA[nameac]]></dc:creator><pubDate>Tue, 17 Oct 2006 08:31:29 GMT</pubDate></item><item><title><![CDATA[Reply to jni on Tue, 17 Oct 2006 09:47:05 GMT]]></title><description><![CDATA[<p>nochma,</p>
<pre><code>#include &quot;stdafx.h&quot; 
#include &quot;jni.h&quot; 
#include &quot;windows.h&quot; 

typedef jint (WINAPI* JNI_CREATEJAVAVM)(JavaVM **pvm, void ** penv, void *args); 

int main(int argc, char* argv[]) 
{ 
   JavaVMInitArgs vm_args; 
   JavaVMOption options[10]; 
   JavaVM* jvm; 
   JNIEnv* env; 

   options[0].optionString = &quot;-Djava.compiler=NONE&quot;; 
   options[1].optionString = &quot;-Djava.class.path=D:/programme/eclipse/workspace/helloworld&quot;; 

   vm_args.version  = JNI_VERSION_1_4; 
   vm_args.nOptions = 2; 
   vm_args.options  = options; 
   vm_args.ignoreUnrecognized = false; 

   JNI_CREATEJAVAVM JNI_CreateJavaVM = 0; 

   HMODULE hLib = LoadLibrary((LPCWSTR)&quot;E:\\c_progs\\nativ_c\\native_c\\jvm.dll&quot;); 

   JNI_CreateJavaVM = (JNI_CREATEJAVAVM) GetProcAddress(hLib, &quot;JNI_CreateJavaVM&quot;); 

   long status  = JNI_CreateJavaVM(&amp;jvm, (void**) &amp;env, &amp;vm_args); 
   if  (status != JNI_OK) 
   { 
      printf(&quot;Failed creating JVM. Error: %d\r\n&quot;, status); 
   } 
   else 
   { 
      printf(&quot;JVM created\r\n&quot;); 
   } 
    jclass cls = (*env).FindClass(&quot;HelloWorld&quot;);
    if (cls == 0) {
        fprintf(stderr, &quot;Can't find Prog class\n&quot;);
    }

    jmethodID mid = (*env).GetStaticMethodID (cls, &quot;main&quot;, &quot;([Ljava/lang/String;)V&quot;);
    if (mid == 0) {
        fprintf(stderr, &quot;Can't find Prog.main\n&quot;);
    }

    (*env).CallStaticVoidMethod(cls, mid, NULL);
 	  (*jvm).DestroyJavaVM();

   return 0; 
}
</code></pre>
<p>compeliert fehler frei, jdoch beim ausführen der exe kommt ein fehler :<br />
&quot; die anweisung in 0x00000000 verweist auf speicher in 0x00000000. der vorgang read konnte nicht durchgeführt werden.&quot;<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1156134</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1156134</guid><dc:creator><![CDATA[nameac]]></dc:creator><pubDate>Tue, 17 Oct 2006 09:47:05 GMT</pubDate></item><item><title><![CDATA[Reply to jni on Tue, 17 Oct 2006 11:18:33 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>schonmal überprüft, ob hLib und JNI_CreateJavaVM überhaupt gültige Werte haben ?<br />
Vielleicht scheitern ja LoadLibrary() oder GetProcAddress() ? (z.B: File not found etc....)</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1156205</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1156205</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Tue, 17 Oct 2006 11:18:33 GMT</pubDate></item><item><title><![CDATA[Reply to jni on Tue, 17 Oct 2006 11:55:22 GMT]]></title><description><![CDATA[<p>hm scheinst recht zuhaben ich hab mal soweit auskommentiert das nur noch das von dem post davor dasteht und beim ausführen der exe entsteht der gleiche fehler.</p>
<p>long status = JNI_CreateJavaVM(&amp;jvm, (void**) &amp;env, &amp;vm_args);</p>
<p>der fehler scheint bei diesem aufruf zuentstehen das meinst du doch oder</p>
<p>wie testet man z.b. ob getProcAddress eine gültige addresse zurück gibt?<br />
ich habe mal das probiert</p>
<pre><code>JNI_CreateJavaVM = (JNI_CREATEJAVAVM) GetProcAddress(hLib, &quot;JNI_CreateJavaVM&quot;); 
if(JNI_CreateJavaVM=NULL||JNI_CreateJavaVM!=NULL){
   printf(&quot;fdgg&quot;);
   }
</code></pre>
<p>aber der if block wird nicht ausgeführt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1156248</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1156248</guid><dc:creator><![CDATA[nameac]]></dc:creator><pubDate>Tue, 17 Oct 2006 11:55:22 GMT</pubDate></item><item><title><![CDATA[Reply to jni on Tue, 17 Oct 2006 12:03:43 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">if(JNI_CreateJavaVM==NULL)
  printf(&quot;Error&quot;);
</code></pre>
<p>(Hint: = bedeutet Zuweisung, vergleichen tust du mit ==)</p>
<p>PS: Und am besten auch den Rückgabewert von LoadLibrary überprüfen.</p>
<p>PPS: (LPCWSTR)&quot;...&quot; ist etwas anderes als _T(&quot;...&quot;) (ersteres interpretiert den Inhalt des ASCII-Strings nur als UNICODE-Daten um, letzteres erzeugt einen UNICODE-String)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1156255</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1156255</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 17 Oct 2006 12:03:43 GMT</pubDate></item><item><title><![CDATA[Reply to jni on Tue, 17 Oct 2006 12:16:34 GMT]]></title><description><![CDATA[<p>jo beides null was soll ich jetz machen ich hab das auch mit dem _T gemacht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1156271</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1156271</guid><dc:creator><![CDATA[nameac]]></dc:creator><pubDate>Tue, 17 Oct 2006 12:16:34 GMT</pubDate></item><item><title><![CDATA[Reply to jni on Tue, 17 Oct 2006 12:24:23 GMT]]></title><description><![CDATA[<p>GetLastError() verwenden, um herauszufinden was schiefgelaufen ist</p>
<p>(btw, wenn du mit den Errorcodes nichts anfangen kannst, FormatMessage() kann dir erklären, was sie bedeuten)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1156277</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1156277</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 17 Oct 2006 12:24:23 GMT</pubDate></item><item><title><![CDATA[Reply to jni on Tue, 17 Oct 2006 12:36:38 GMT]]></title><description><![CDATA[<pre><code>if(hLib==NULL){
   printf(&quot;%s&quot;,GetLastError());
   }
</code></pre>
<p>meinst du so da kommt beim ausführen der exe ein fehler:</p>
<p>die anweisung in 0x10227c2f verweist auf speicher in 0x0000007e der vorgang read konnte nicht durchgeführt werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1156290</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1156290</guid><dc:creator><![CDATA[nameac]]></dc:creator><pubDate>Tue, 17 Oct 2006 12:36:38 GMT</pubDate></item><item><title><![CDATA[Reply to jni on Tue, 17 Oct 2006 12:41:51 GMT]]></title><description><![CDATA[<p>Und lies dir bitte mal die Formatkennungen von printf() durch - GetLastError() liefert einen int-Wert, den kannst du als &quot;%d&quot; direkt ausgeben oder per <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/debug/base/formatmessage.asp" rel="nofollow">FormatMessage()</a> dir einen lesbaren String dazu besorgen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1156297</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1156297</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 17 Oct 2006 12:41:51 GMT</pubDate></item></channel></rss>