<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<p>Hi Rebecca,<br>
I believe neither JNA nor JNR support C++, so I'm not 100% what
you mean here.</p>
<p>You would at the very least need to add "extern C" to your
function declaration, to make sure that no mangling occurs.</p>
<p>Before I answer further, please clarify what you would like to
achieve - if you really want to call a C++ library using Panama
and jextract, I'm afraid that's not possible at the moment (as is
the case for the other frameworks you mentioned).</p>
<p>If you are ok adding "extern C" or, if C++ is not really central
to the question you are asking, I'm happy to help further.</p>
<p>Please also refer to the tutorial here (assuming Java 20):</p>
<p><a class="moz-txt-link-freetext" href="https://github.com/openjdk/panama-foreign/blob/78d460f04d93f3df8e8f703e78780a152793f44a/doc/panama_ffi.md">https://github.com/openjdk/panama-foreign/blob/78d460f04d93f3df8e8f703e78780a152793f44a/doc/panama_ffi.md</a></p>
<p>Maurizio<br>
</p>
<div class="moz-cite-prefix">On 25/04/2023 19:08, Michel Trudeau
wrote:<br>
</div>
<blockquote type="cite" cite="mid:MW4PR10MB5837D4BB9B16E4F63B0456BFED649@MW4PR10MB5837.namprd10.prod.outlook.com">
<meta name="Generator" content="Microsoft Word 15 (filtered
medium)">
<style>@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}span.EmailStyle18
{mso-style-type:personal-reply;
font-family:"Calibri",sans-serif;
color:windowtext;}.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;
mso-ligatures:none;}div.WordSection1
{page:WordSection1;}</style>
<div class="WordSection1">
<p class="MsoNormal">[Moving to the right list]<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div style="border:none;border-top:solid #B5C4DF
1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="margin-bottom:12.0pt"><b><span style="font-size:12.0pt;color:black">From:
</span></b><span style="font-size:12.0pt;color:black">code-tools-dev
<a class="moz-txt-link-rfc2396E" href="mailto:code-tools-dev-retn@openjdk.org"><code-tools-dev-retn@openjdk.org></a> on behalf of
Rebecca Ahlvarsson <a class="moz-txt-link-rfc2396E" href="mailto:rahlvarsson@gmail.com"><rahlvarsson@gmail.com></a><br>
<b>Date: </b>Tuesday, April 25, 2023 at 9:18 AM<br>
<b>To: </b><a class="moz-txt-link-abbreviated" href="mailto:code-tools-dev@openjdk.org">code-tools-dev@openjdk.org</a>
<a class="moz-txt-link-rfc2396E" href="mailto:code-tools-dev@openjdk.org"><code-tools-dev@openjdk.org></a><br>
<b>Subject: </b>A very basic HelloWorld with jextract and
panama<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal">This question is so basic that I must be
missing something. Sorry if that's a dumb rookie question.<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">I have the following C++ code:<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"> #include <iostream><br>
<br>
using namespace std;<br>
<br>
void sayHello() {<br>
cout << "Hello, Panama!" << endl;<br>
}<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Great!!!<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Now how do I go about calling the
"sayHello()" C++ method from Java using jextract and
panama?<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><b>I can use Linux or Mac, you choose.
And I have jextract built on both machines.</b><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">That's easy and straightforward with
JNI, JNA and JNR. But not with Panama? :(<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Your help clarifying this issue will be
greatly appreciated!<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">-Rebecca<br clear="all">
<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
</div>
</div>
</blockquote>
</body>
</html>