Unresolved external for QUEUE

Hello,

I have created QUEUE in DLL, added it to the Export list.

In EXE file I have added options EXTERNAL, DLL(1), as it is stated in Help file. But when I compile EXE, I get error that QUEUE is Unresolved external.

When I remove EXTERNAL, DLL(1) in EXE file, then error is Duplicate symbol, so there should not be Unresolved external error.

When I do this with any variable type there is no error.

Do I need to add something more in DLL when it is QUEUE in question?

Thanks for any help.

How are you exporting the queue? In addition to the queue itself, you also have to export its type:

TYPE$MYQUEUE @?

On GitHub I have a modified Pro2Exp that will do Queue’s. I show it also needs a TCB$ Entry e.g.

CODE:

PairsQ QUEUE
....
  END

EXP:

EXPORTS
    TYPE$PAIRSQ        @?
    TCB$PAIRSQ         @?
    $PAIRSQ            @?

A source of EXP rules is the BuildExp.TPW template. It shows TYPE$ TCB$ $ for QUEUE

  #ELSIF(EXTRACT(%GlobalDataStatement,'QUEUE'))
    #SET(%ValueConstruct,%ValueConstruct + 1)
      #IF(NOT EXTRACT(%GlobalDataStatement,'OVER'))

  TYPE$%GlobalData @?
  TCB$%GlobalData @?
  $%GlobalData @?

      #ENDIF
1 Like

Thank you both for help. Now it works.

In export list was only $MyQueue @?. I added TYPE, but error was still there. With Barnes additions, code now works.

I really do not understand why something so important is not in the Help documentation.

Once again thanks for help.

1 Like

Ah, I forgot the TCB$ one. Thanks, Carl.