Re: C# issue with module dependency
Christophe CALMEJANE via Swig-user <[email protected]> Wed, 4 Dec 2024 16:27:23 +0000
| Newsgroups | gmane.comp.programming.swig |
|---|---|
| Message-ID | <PR0P264MB22044DD7A28145C75EB04E11DF372@PR0P264MB2204.FRAP264.PROD.OUTLOOK.COM> |
--===============6148423824797536915== Content-Language: fr-FR Content-Type: multipart/alternative; boundary="_000_PR0P264MB22044DD7A28145C75EB04E11DF372PR0P264MB2204FRAP_" --_000_PR0P264MB22044DD7A28145C75EB04E11DF372PR0P264MB2204FRAP_ Content-Type: text/plain; charset="Windows-1252" Content-Transfer-Encoding: quoted-printable Ok nevermind, we were not looking at the correct version of the documentati= on (google search pointed to 2.0). I suppose there is nothing new than defi= ning the method as public. I was hoping maybe SWIG could detect the =93import=94 directive in moduleB.= i file and use something different than ModA.getCPtr() but I guess it=92s w= ay too complicated. We=92ll go for public symbol then, except if somebody has a better approach= . Thanks, Chris De : Christophe CALMEJANE via Swig-user <[email protected]> Date : mercredi, 4 d=E9cembre 2024 =E0 17:17 =C0 : [email protected] <[email protected]> Objet : [Swig-user] C# issue with module dependency Hi, Context: We have a few C++ libraries that are wrapped to C# using SWIG. Each library= being a separate module (each with its own .i file). Some wrapped C++ libr= aries depend on other wrapped C++ libraries, so our module definition impor= t other modules. We used to deploy all generated C# files at once (all modules together) so = they can be imported all directly in a C# project. This worked fine without= any specific issue. Change: We are now deploying each individual module as nuget, meaning each module i= s in its own assembly. Issue: If one of the module=92s method takes a l-value parameter, the getCPtr meth= od is used but it=92s not accessible (declared =93internal=94). Example: moduleA.hpp: #pragma once #include <cstdint> class ModA { public: ModA() =3D default; ~ModA() =3D default; std::uint8_t getA() const noexcept { return _a; } void setA(std::uint8_t const a) noexcept { _a =3D a; } ModA(ModA const&) =3D default; private: std::uint8_t _a{ 0 }; }; moduleA.i: %module moduleA %include <stdint.i> %include "moduleA.hpp" moduleB.hpp: #pragma once #include <moduleA.hpp> class ModB { public: ModB() =3D default; ~ModB() =3D default; bool testModuleA(ModA const& moduleA) const noexcept { return moduleA.getA() !=3D 0; } ModB(ModB const&) =3D default; private: }; moduleB.i: %module moduleB %include <stdint.i> %import "moduleA/file.i" %include "moduleB.hpp" ModC.cs: =85 public bool testModuleA(ModA moduleA) { bool ret =3D moduleBPINVOKE.ModB_testModuleA(swigCPtr, ModA.getCPtr(mod= uleA)); if (moduleBPINVOKE.SWIGPendingException.Pending) throw moduleBPINVOKE.S= WIGPendingException.Retrieve(); return ret; } =85 ModA.getCPtr is not accessible here as it=92s part of a different assembly. I did find some related question but from 2011, and I was wondering if ther= e is a new way to properly solve that issue (https://sourceforge.net/p/swig= /mailman/swig-devel/thread/[email protected]/), or at le= ast what is the recommended way to solve that? Many thanks Christophe CALMEJANE Head of Technology, Middleware & Tools [Image supprim=E9e par l'exp=E9diteur.] 13 Rue Levacher Cintrat, Parc Fontaine de Jouvence - 91460 Marcoussis - Fra= nce Office : +33 1 70 84 08 98 l-acoustics.com [Image supprim=E9e par l'exp=E9diteur.]<https://cloud.letsignit.com/collect= /bc/64a7be18452a27db4360347b?p=3DUsTT3QRdxkzMmk8xWrTuV-uvIKAerqcZMr6658o8-t= aqTH6nWN6ZOM_Zy_q5b3x-VHo3zXRxrOe-IptTyhxCN2Rh9feXLiyWXdTMD1_8sy0mRKcAbIcY9= EZYZKbviCE5yGd3tnlp7kBBVIKkAYwW0ZOXmUKQMhhzKNAXYq6Sn1j2xyBLWvF02lAtBLfioAwT= > [Image supprim=E9e par l'exp=E9diteur.] <https://cloud.letsignit.com/col= lect/bc/64a7be18452a27db4360347b?p=3DUsTT3QRdxkzMmk8xWrTuV-uvIKAerqcZMr6658= o8-taqTH6nWN6ZOM_Zy_q5b3x-VHo3zXRxrOe-IptTyhxCN2Rh9feXLiyWXdTMD1_8sy0mRKcAb= IcY9EZYZKbviCE5krCQI7iOjKL9rcShM_dPkWyzshVh0h15MJjhKYhaTyzuqZ4ie7sno56jroIN= 9ZSo> [Image supprim=E9e par l'exp=E9diteur.] <https://cloud.letsignit.co= m/collect/bc/64a7be18452a27db4360347b?p=3DUsTT3QRdxkzMmk8xWrTuV-uvIKAerqcZM= r6658o8-taqTH6nWN6ZOM_Zy_q5b3x-VHo3zXRxrOe-IptTyhxCN2Rh9feXLiyWXdTMD1_8sy02= FJau7ravxn65ADDCFsrjQ5aqYW9g6SQ8F69CCS6-v-AA2tKPDXmcvjvjLIIjvySoQPH0hdhFsDT= u3osl-Z7y> [Image supprim=E9e par l'exp=E9diteur.] <https://cloud.letsign= it.com/collect/bc/64a7be18452a27db4360347b?p=3DUsTT3QRdxkzMmk8xWrTuV-uvIKAe= rqcZMr6658o8-taqTH6nWN6ZOM_Zy_q5b3x-VHo3zXRxrOe-IptTyhxCN2Rh9feXLiyWXdTMD1_= 8sy0LNijUNdUicuCOSnTBvePS5vNpnlj3JUYx_sJFFyu5S6oHykNMLGn_xbBjY4CKnQo=3D> = [Image supprim=E9e par l'exp=E9diteur.] <https://cloud.letsignit.com/collec= t/bc/64a7be18452a27db4360347b?p=3DUsTT3QRdxkzMmk8xWrTuV-uvIKAerqcZMr6658o8-= taqTH6nWN6ZOM_Zy_q5b3x-VHo3zXRxrOe-IptTyhxCN2Rh9feXLiyWXdTMD1_8sy1zNTgIGfoG= fk7_Je1fJuaspseiI_F2ZmkaC7rRCL-e5GCRWQurIaztOnMVwTwecp8=3D> [Image suppri= m=E9e par l'exp=E9diteur.] <https://cloud.letsignit.com/collect/bc/64a7be18= 452a27db4360347b?p=3DUsTT3QRdxkzMmk8xWrTuV-uvIKAerqcZMr6658o8-taqTH6nWN6ZOM= _Zy_q5b3x-VHo3zXRxrOe-IptTyhxCN2Rh9feXLiyWXdTMD1_8sy0mRKcAbIcY9EZYZKbviCE5D= R33ee51F4MQQyP1gffWzUpshOs9woJxNJnwLb0kZ8ZXn0fkAx706ZFMBZcEuYiI> Si vous recevez ce mail pendant votre p=E9riode de repos, vous n=92=EAtes p= as tenu d=92y r=E9pondre imm=E9diatement. If you receive this email during your time off, you are not required to res= pond immediately. [Image supprim=E9e par l'exp=E9diteur.] --_000_PR0P264MB22044DD7A28145C75EB04E11DF372PR0P264MB2204FRAP_ Content-Type: text/html; charset="Windows-1252" Content-Transfer-Encoding: quoted-printable <html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr= osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" = xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:= //www.w3.org/TR/REC-html40"> <head> <meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3DWindows-1= 252"> <meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)"> <!--[if !mso]><style>v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} </style><![endif]--><style><!-- /* Font Definitions */ @font-face {font-family:"Cambria Math"; panose-1:2 4 5 3 5 4 6 3 2 4;} @font-face {font-family:Verdana; panose-1:2 11 6 4 3 5 4 4 2 4;} @font-face {font-family:Aptos; panose-1:2 11 0 4 2 2 2 2 2 4;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {margin:0cm; font-size:11.0pt; font-family:"Aptos",sans-serif;} a:link, span.MsoHyperlink {mso-style-priority:99; color:#467886; text-decoration:underline;} span.EmailStyle21 {mso-style-type:personal-reply; font-family:"Aptos",sans-serif; color:windowtext;} .MsoChpDefault {mso-style-type:export-only; font-size:11.0pt; mso-ligatures:none;} @page WordSection1 {size:612.0pt 792.0pt; margin:70.85pt 70.85pt 70.85pt 70.85pt;} div.WordSection1 {page:WordSection1;} --></style><!--[if gte mso 9]><xml> <o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" /> </xml><![endif]--><!--[if gte mso 9]><xml> <o:shapelayout v:ext=3D"edit"> <o:idmap v:ext=3D"edit" data=3D"1" /> </o:shapelayout></xml><![endif]--> </head> <body lang=3D"FR" link=3D"#467886" vlink=3D"#96607D" style=3D"word-wrap:bre= ak-word"> <div class=3D"WordSection1"> <p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"mso-fareast-language:E= N-US">Ok nevermind, we were not looking at the correct version of the docum= entation (google search pointed to 2.0). I suppose there is nothing new tha= n defining the method as public.<o:p></o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"mso-fareast-language:E= N-US">I was hoping maybe SWIG could detect the =93import=94 directive in mo= duleB.i file and use something different than ModA.getCPtr() but I guess it= =92s way too complicated.<o:p></o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"mso-fareast-language:E= N-US">We=92ll go for public symbol then, except if somebody has a better ap= proach.<o:p></o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"mso-fareast-language:E= N-US"><o:p> </o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"mso-fareast-language:E= N-US">Thanks,<o:p></o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"mso-fareast-language:E= N-US">Chris<o:p></o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"mso-fareast-language:E= N-US"><o:p> </o:p></span></p> <div> <p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"display:none"><o:p>&nb= sp;</o:p></span></p> <table class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"0" cellpadding= =3D"0" width=3D"0"> <tbody> <tr> <td style=3D"padding:0cm 0cm 0cm 0cm"> <div id=3D"LSI_marker"> <p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:1.0pt"> = ;<o:p></o:p></span></p> </div> </td> </tr> </tbody> </table> </div> <p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"mso-fareast-language:E= N-US"><o:p> </o:p></span></p> <div id=3D"mail-editor-reference-message-container"> <div> <div> <div style=3D"border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm = 0cm 0cm"> <p class=3D"MsoNormal" style=3D"margin-bottom:12.0pt"><b><span style=3D"fon= t-size:12.0pt;color:black">De : </span></b><span style=3D"font-size:12.0pt;color:black">Christophe CALMEJAN= E via Swig-user <[email protected]><br> <b>Date : </b>mercredi, 4 d=E9cembre 2024 =E0 17:17<br> <b>=C0 : </b>[email protected] <[email protected]= eforge.net><br> <b>Objet : </b>[Swig-user] C# issue with module dependency<o:p></o:p><= /span></p> </div> <div> <p class=3D"MsoNormal">Hi,<o:p></o:p></p> <p class=3D"MsoNormal"> <o:p></o:p></p> <p class=3D"MsoNormal"><b><span lang=3D"EN-US">Context</span></b><span lang= =3D"EN-US">:</span><o:p></o:p></p> <p class=3D"MsoNormal"><span lang=3D"EN-US">We have a few C++ libraries tha= t are wrapped to C# using SWIG. Each library being a separate module (each = with its own .i file). Some wrapped C++ libraries depend on other wrapped C= ++ libraries, so our module definition import other modules.</span><o:p></o:p></p> <p class=3D"MsoNormal"><span lang=3D"EN-US">We used to deploy all generated= C# files at once (all modules together) so they can be imported all direct= ly in a C# project. This worked fine without any specific issue.</span><o:p= ></o:p></p> <p class=3D"MsoNormal"><span lang=3D"EN-US"> </span><o:p></o:p></p> <p class=3D"MsoNormal"><b><span lang=3D"EN-US">Change</span></b><span lang= =3D"EN-US">:</span><o:p></o:p></p> <p class=3D"MsoNormal"><span lang=3D"EN-US">We are now deploying each indiv= idual module as nuget, meaning each module is in its own assembly.</span><o= :p></o:p></p> <p class=3D"MsoNormal"><span lang=3D"EN-US"> </span><o:p></o:p></p> <p class=3D"MsoNormal"><b><span lang=3D"EN-US">Issue</span></b><span lang= =3D"EN-US">:</span><o:p></o:p></p> <p class=3D"MsoNormal"><span lang=3D"EN-US">If one of the module=92s method= takes a l-value parameter, the getCPtr method is used but it=92s not acces= sible (declared =93internal=94).</span><o:p></o:p></p> <p class=3D"MsoNormal"><span lang=3D"EN-US"> </span><o:p></o:p></p> <p class=3D"MsoNormal"><b><span lang=3D"EN-US">Example</span></b><span lang= =3D"EN-US">:</span><o:p></o:p></p> <p class=3D"MsoNormal"><i><u><span lang=3D"EN-US">moduleA.hpp</span></u></i= ><span lang=3D"EN-US">:</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">#p= ragma once</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">&n= bsp;</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">#i= nclude <cstdint></span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">&n= bsp;</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">cl= ass ModA</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">{<= /span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">pu= blic:</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">&n= bsp;  = ; ModA() =3D default;</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">&n= bsp;  = ; ~ModA() =3D default;</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">&n= bsp;</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">&n= bsp;  = ; std::uint8_t getA() const noexcept</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">&n= bsp;  = ; {</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">&n= bsp;  = ; &n= bsp; return _a;</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">&n= bsp;  = ; }</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">&n= bsp;</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">&n= bsp;  = ; void setA(std::uint8_t const a) noexcept</span><o:p></o:p></p= > <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">&n= bsp;  = ; {</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">&n= bsp;  = ; &n= bsp; _a =3D a;</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">&n= bsp;  = ; }</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">&n= bsp;</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">&n= bsp;  = ; ModA(ModA const&) =3D default;</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">&n= bsp;</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">pr= ivate:</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">&n= bsp;  = ; std::uint8_t _a{ 0 };</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">};= </span><o:p></o:p></p> <p class=3D"MsoNormal"><span lang=3D"EN-US"> </span><o:p></o:p></p> <p class=3D"MsoNormal"><i><u><span lang=3D"EN-US">moduleA.i</span></u></i><= span lang=3D"EN-US">:</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">%m= odule moduleA</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">%i= nclude <stdint.i></span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">&n= bsp;</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">%i= nclude "moduleA.hpp"</span><o:p></o:p></p> <p class=3D"MsoNormal"><span lang=3D"EN-US"> </span><o:p></o:p></p> <p class=3D"MsoNormal"><span lang=3D"EN-US"> </span><o:p></o:p></p> <p class=3D"MsoNormal"><i><u><span lang=3D"EN-US">moduleB.hpp</span></u></i= ><span lang=3D"EN-US">:</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">#p= ragma once</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">&n= bsp;</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">#i= nclude <moduleA.hpp></span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">&n= bsp;</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">cl= ass ModB</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">{<= /span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">pu= blic:</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">&n= bsp;  = ; ModB() =3D default;</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">&n= bsp;  = ; ~ModB() =3D default;</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">&n= bsp;</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">&n= bsp;  = ; bool testModuleA(ModA const& moduleA) const noexcept</spa= n><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">&n= bsp;  = ; {</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">&n= bsp;  = ; &n= bsp; return moduleA.getA() !=3D 0;</span><o:p= ></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">&n= bsp;  = ; }</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">&n= bsp;</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">&n= bsp;  = ; ModB(ModB const&) =3D default;</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">&n= bsp;</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">pr= ivate:</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">};= </span><o:p></o:p></p> <p class=3D"MsoNormal"><span lang=3D"EN-US"> </span><o:p></o:p></p> <p class=3D"MsoNormal"><span lang=3D"EN-US"> </span><o:p></o:p></p> <p class=3D"MsoNormal"><i><u><span lang=3D"EN-US">moduleB.i</span></u></i><= span lang=3D"EN-US">:</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">%m= odule moduleB</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">%i= nclude <stdint.i></span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">&n= bsp;</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">%i= mport "moduleA/file.i"</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">&n= bsp;</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">%i= nclude "moduleB.hpp"</span><o:p></o:p></p> <p class=3D"MsoNormal"><span lang=3D"EN-US"> </span><o:p></o:p></p> <p class=3D"MsoNormal"><i><u><span lang=3D"EN-US">ModC.cs</span></u></i><sp= an lang=3D"EN-US">:</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">= =85</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">&n= bsp; public bool testModuleA(ModA moduleA) {</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">&n= bsp; bool ret =3D moduleBPINVOKE.ModB_testModuleA(swigCPtr, <b>ModA.getCPtr</b>(moduleA));</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">&n= bsp; if (moduleBPINVOKE.SWIGPendingException.Pending) throw mod= uleBPINVOKE.SWIGPendingException.Retrieve();</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">&n= bsp; return ret;</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">&n= bsp; }</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt"><span lang=3D"EN-US">= =85</span><o:p></o:p></p> <p class=3D"MsoNormal"><span lang=3D"EN-US"> </span><o:p></o:p></p> <p class=3D"MsoNormal"><span lang=3D"EN-US">ModA.getCPtr is not accessible = here as it=92s part of a different assembly.</span><o:p></o:p></p> <p class=3D"MsoNormal"><span lang=3D"EN-US"> </span><o:p></o:p></p> <p class=3D"MsoNormal"><span lang=3D"EN-US">I did find some related questio= n but from 2011, and I was wondering if there is a new way to properly solv= e that issue (<a href=3D"https://sourceforge.net/p/swig/mailman/swig-devel/= thread/[email protected]/">https://sourceforge.net/p/swi= g/mailman/swig-devel/thread/[email protected]/</a>), or at least what is the recommended way to solve that?</span><o:p></o:p></= p> <p class=3D"MsoNormal"><span lang=3D"EN-US"> </span><o:p></o:p></p> <p class=3D"MsoNormal"><span lang=3D"EN-US">Many thanks</span><o:p></o:p></= p> <p class=3D"MsoNormal"><span lang=3D"EN-US"> </span><o:p></o:p></p> <div> <table class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"0" cellpadding= =3D"0" width=3D"550" style=3D"width:412.5pt"> <tbody> <tr> <td style=3D"padding:0cm 0cm 0cm 0cm"> <p class=3D"MsoNormal"><b><span style=3D"font-size:10.0pt;font-family:"= ;Verdana",sans-serif;color:#575756">Christophe CALMEJANE</span></b><o:= p></o:p></p> </td> </tr> <tr> <td style=3D"padding:0cm 0cm 0cm 0cm"> <p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:9.0pt;font-f= amily:"Verdana",sans-serif;color:#575756">Head of Technology, Mid= dleware & Tools<br> <br> </span><span style=3D"font-size:9.0pt;font-family:"Verdana",sans-= serif;color:#575756;border:solid windowtext 1.0pt;padding:0cm"><img border= =3D"0" width=3D"120" height=3D"120" style=3D"width:1.25in;height:1.25in" id= =3D"_x0000_i1032" src=3D"cid:~WRD1309.jpg" alt=3D"Image supprim=E9e par l'e= xp=E9diteur."></span><o:p></o:p></p> </td> </tr> <tr> <td style=3D"padding:0cm 0cm 0cm 0cm"> <p class=3D"MsoNormal"><span style=3D"font-size:8.0pt;font-family:"Ver= dana",sans-serif;color:#575756">13 Rue Levacher Cintrat, Parc Fontaine= de Jouvence - 91460 Marcoussis - France<br> Office : +33 1 70 84 08 98<br> </span><o:p></o:p></p> </td> </tr> <tr> <td style=3D"padding:0cm 0cm 0cm 0cm"> <p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:"Ver= dana",sans-serif;color:#575756">l-acoustics.com <br> <a href=3D"https://cloud.letsignit.com/collect/bc/64a7be18452a27db4360347b?= p=3DUsTT3QRdxkzMmk8xWrTuV-uvIKAerqcZMr6658o8-taqTH6nWN6ZOM_Zy_q5b3x-VHo3zXR= xrOe-IptTyhxCN2Rh9feXLiyWXdTMD1_8sy0mRKcAbIcY9EZYZKbviCE5yGd3tnlp7kBBVIKkAY= wW0ZOXmUKQMhhzKNAXYq6Sn1j2xyBLWvF02lAtBLfioAwT"><span style=3D"color:#57575= 6;text-decoration:none"><span style=3D"color:blue;border:solid windowtext 1= .0pt;padding:0cm"><img border=3D"0" width=3D"12" height=3D"12" style=3D"wid= th:.125in;height:.125in" id=3D"_x0000_i1031" src=3D"cid:~WRD1309.jpg" alt= =3D"Image supprim=E9e par l'exp=E9diteur."></span></span></a> <a href=3D"https://cloud.letsignit.com/collect/bc/64a7be18452a27db4360347b?= p=3DUsTT3QRdxkzMmk8xWrTuV-uvIKAerqcZMr6658o8-taqTH6nWN6ZOM_Zy_q5b3x-VHo3zXR= xrOe-IptTyhxCN2Rh9feXLiyWXdTMD1_8sy0mRKcAbIcY9EZYZKbviCE5krCQI7iOjKL9rcShM_= dPkWyzshVh0h15MJjhKYhaTyzuqZ4ie7sno56jroIN9ZSo"> <span style=3D"color:#575756;text-decoration:none"><span style=3D"color:blu= e;border:solid windowtext 1.0pt;padding:0cm"><img border=3D"0" width=3D"12"= height=3D"12" style=3D"width:.125in;height:.125in" id=3D"_x0000_i1030" src= =3D"cid:~WRD1309.jpg" alt=3D"Image supprim=E9e par l'exp=E9diteur."></span>= </span></a> <a href=3D"https://cloud.letsignit.com/collect/bc/64a7be18452a27db4360347b?= p=3DUsTT3QRdxkzMmk8xWrTuV-uvIKAerqcZMr6658o8-taqTH6nWN6ZOM_Zy_q5b3x-VHo3zXR= xrOe-IptTyhxCN2Rh9feXLiyWXdTMD1_8sy02FJau7ravxn65ADDCFsrjQ5aqYW9g6SQ8F69CCS= 6-v-AA2tKPDXmcvjvjLIIjvySoQPH0hdhFsDTu3osl-Z7y"> <span style=3D"color:#575756;text-decoration:none"><span style=3D"color:blu= e;border:solid windowtext 1.0pt;padding:0cm"><img border=3D"0" width=3D"12"= height=3D"12" style=3D"width:.125in;height:.125in" id=3D"_x0000_i1029" src= =3D"cid:~WRD1309.jpg" alt=3D"Image supprim=E9e par l'exp=E9diteur."></span>= </span></a> <a href=3D"https://cloud.letsignit.com/collect/bc/64a7be18452a27db4360347b?= p=3DUsTT3QRdxkzMmk8xWrTuV-uvIKAerqcZMr6658o8-taqTH6nWN6ZOM_Zy_q5b3x-VHo3zXR= xrOe-IptTyhxCN2Rh9feXLiyWXdTMD1_8sy0LNijUNdUicuCOSnTBvePS5vNpnlj3JUYx_sJFFy= u5S6oHykNMLGn_xbBjY4CKnQo=3D"> <span style=3D"color:#575756;text-decoration:none"><span style=3D"color:blu= e;border:solid windowtext 1.0pt;padding:0cm"><img border=3D"0" width=3D"12"= height=3D"12" style=3D"width:.125in;height:.125in" id=3D"_x0000_i1028" src= =3D"cid:~WRD1309.jpg" alt=3D"Image supprim=E9e par l'exp=E9diteur."></span>= </span></a> <a href=3D"https://cloud.letsignit.com/collect/bc/64a7be18452a27db4360347b?= p=3DUsTT3QRdxkzMmk8xWrTuV-uvIKAerqcZMr6658o8-taqTH6nWN6ZOM_Zy_q5b3x-VHo3zXR= xrOe-IptTyhxCN2Rh9feXLiyWXdTMD1_8sy1zNTgIGfoGfk7_Je1fJuaspseiI_F2ZmkaC7rRCL= -e5GCRWQurIaztOnMVwTwecp8=3D"> <span style=3D"color:#575756;text-decoration:none"><span style=3D"color:blu= e;border:solid windowtext 1.0pt;padding:0cm"><img border=3D"0" width=3D"12"= height=3D"12" style=3D"width:.125in;height:.125in" id=3D"_x0000_i1027" src= =3D"cid:~WRD1309.jpg" alt=3D"Image supprim=E9e par l'exp=E9diteur."></span>= </span></a> <a href=3D"https://cloud.letsignit.com/collect/bc/64a7be18452a27db4360347b?= p=3DUsTT3QRdxkzMmk8xWrTuV-uvIKAerqcZMr6658o8-taqTH6nWN6ZOM_Zy_q5b3x-VHo3zXR= xrOe-IptTyhxCN2Rh9feXLiyWXdTMD1_8sy0mRKcAbIcY9EZYZKbviCE5DR33ee51F4MQQyP1gf= fWzUpshOs9woJxNJnwLb0kZ8ZXn0fkAx706ZFMBZcEuYiI"> <span style=3D"color:#575756;text-decoration:none"><span style=3D"color:blu= e;border:solid windowtext 1.0pt;padding:0cm"><img border=3D"0" width=3D"12"= height=3D"12" style=3D"width:.125in;height:.125in" id=3D"_x0000_i1026" src= =3D"cid:~WRD1309.jpg" alt=3D"Image supprim=E9e par l'exp=E9diteur."></span>= </span></a></span><o:p></o:p></p> </td> </tr> </tbody> </table> <p class=3D"MsoNormal"><span style=3D"font-size:12.0pt"> </span><o:p><= /o:p></p> <p><span style=3D"font-size:7.0pt;font-family:"Verdana",sans-seri= f;color:#575756">Si vous recevez ce mail pendant votre p=E9riode de repos, = vous n=92=EAtes pas tenu d=92y r=E9pondre imm=E9diatement.<br> </span><span lang=3D"EN-US" style=3D"font-size:7.0pt;font-family:"Verd= ana",sans-serif;color:#575756">If you receive this email during your t= ime off, you are not required to respond immediately. </span><o:p></o:p></p> <p style=3D"margin:.1pt;max-height:170.05px"><span style=3D"border:solid wi= ndowtext 1.0pt;padding:0cm"><img border=3D"0" width=3D"339" height=3D"170" = style=3D"width:3.5312in;height:1.7708in" id=3D"_x0000_i1025" src=3D"cid:~WR= D1309.jpg" alt=3D"Image supprim=E9e par l'exp=E9diteur."></span><o:p></o:p>= </p> <table class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"0" cellpadding= =3D"0" width=3D"0"> <tbody> <tr> <td style=3D"padding:0cm 0cm 0cm 0cm"> <div id=3D"LSI_marker"> <p class=3D"MsoNormal"><span style=3D"font-size:1.0pt"> </span><o:p></= o:p></p> </div> </td> </tr> </tbody> </table> </div> <p class=3D"MsoNormal"> <o:p></o:p></p> </div> </div> </div> </div> </div> </body> </html> --_000_PR0P264MB22044DD7A28145C75EB04E11DF372PR0P264MB2204FRAP_-- --===============6148423824797536915== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline --===============6148423824797536915== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Swig-user mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/swig-user --===============6148423824797536915==--