<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>