How should functions in mod2 be declared so that it could be called from mod1?
Code: Select all
; module 1
DeclareModule mod1
  Declare add(a, b)  
  Declare modAdd(a, b)
EndDeclareModule
Module mod1        
  Procedure add(a, b)
    ProcedureReturn a + b
  EndProcedure  
  
  Procedure modAdd(a, b)
    ;ProcedureReturn mod2::add(a, b)
  EndProcedure  
EndModule
; module 2
DeclareModule mod2
  Declare add(a, b)
  Declare modAdd(a, b)
EndDeclareModule
Module mod2
  Procedure add(a, b)
    ProcedureReturn a + b
  EndProcedure  
  
  Procedure modAdd(a, b)
    ProcedureReturn mod1::add(a, b)
  EndProcedure    
EndModule
; main program
OpenWindow(0, 0, 0, 300, 200, "Module Declatations", 
           #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ListViewGadget(0, 0, 0, 300, 200)
AddGadgetItem(0, -1, Str(mod1::add(1, 2)))     ; works!
AddGadgetItem(0, -1, Str(mod2::add(1, 2)))     ; works!
AddGadgetItem(0, -1, Str(mod1::modAdd(1, 2)))  ; error > Module not found: mod2
AddGadgetItem(0, -1, Str(mod2::modAdd(1, 2)))  ; works!
While WaitWindowEvent() ! #PB_Event_CloseWindow : Wend
I feel I must have missed something.
