Dein Canvas kannst du nicht so einfach an deine
DLL weitergeben. Es könnte klappen, wenn du die
Unit ShareMem in beiden Projekten als allererstes in der Projektdatei in die uses schreibst, das habe ich nie besonders mir angeschaut, weil es dann nur mit Delphi ginge.
Weitergeben kannst du z.B. einen Device-Context (HDC) und auf dem zeichnen, das sollte die bessere Lösung sein.
Die Einbindung deiner Funktion aus der
DLL ins Projekt solltest du dir auch noch einmal anschauen... das external bezieht sich auf die jeweilige Prozedur oder Funktion davor (und gehört in die selbe Zeile der Übersicht halber)...