<HTML><BODY><p style="margin-top: 0px;" dir="ltr">More interested in how to access structure defs and variables from main module</p>
<div id="mail-app-auto-default-signature">
<p dir="ltr">--<br> Thanks<br> Brian</p>
</div>Sunday, 24 May 2020, 04:58PM -07:00 from Bruce <a href="mailto:adamnt42@gmail.com">adamnt42@gmail.com</a>:<br><br><blockquote id="mail-app-auto-quote" cite="15903647000000015033" style="border-left:1px solid #0878BD; margin:0px 0px 0px 10px; padding:0px 0px 0px 10px;">
<div class="js-helper js-readmsg-msg">
<style type="text/css"></style>
<div >
<base target="_self" href="https://e-aj.my.com/" />
<div id="style_15903647000000015033_BODY"><br>
<br>
On 25/5/20 1:51 am, Brian G wrote:<br>
> <br>
> I am trying to access the methods in the main module not class from one of the loaded plugins.<br>
> <br>
> <br>
<br>
OK! A couple of points:<br>
1) In you main project the classes you want visible in the plugin must <br>
be exported and<br>
2) (Obviously) the methods you want to expose to the plugin must be public.<br>
<br>
Here's what I think you are trying:<br>
MAIN PROGRAM "Main" module<br>
--------------------------<br>
' Gambas module file<br>
<br>
Export<br>
<br>
Public Sub Main()<br>
<br>
Dim hXXX As Object<br>
<br>
Component.Load("ph.plugin")<br>
' Print Class.IsLoaded("PluginA")<br>
<br>
hXXX = Object.New("PluginA")<br>
<br>
Catch<br>
Error Subst("&1\nERR: &2 (&3)\n&4\n&1\n", String$(40, "-"), <br>
Error.Text, Error.Code, Error.Backtrace.Join("\n"))<br>
<br>
End<br>
<br>
Public Function Addup(nums As Integer[]) As Integer<br>
Dim iTot As Integer<br>
For idx As Integer = 0 To nums.Max<br>
iTot += nums[idx]<br>
Next<br>
Return iTot<br>
End<br>
<br>
PLUGIN COMPONENT "PluginA" class<br>
--------------------------------<br>
' Gambas class file<br>
<br>
Export<br>
<br>
Public Sub _new()<br>
<br>
Dim cxx As Class = classes["Main"]<br>
Print object.call(cxx, "Addup", [[1, 5, 2, 5, 9]])<br>
<br>
End<br>
<br>
b<br>
<br>
----[ <a href="http://gambaswiki.org/wiki/doc/netiquette" target="_blank" >http://gambaswiki.org/wiki/doc/netiquette</a> ]----<br>
</div>
<base target="_self" href="https://e-aj.my.com/" />
</div>
</div>
</blockquote></BODY></HTML>