Das ist leider korrekt. Parametermarker funktionieren nur mit registrierten Prozeduren/Funktionen.
Was hindert dich denn, die Prozeduren als Extern einfach zu deklarieren?
Alternativ kannst du eben alle Programme direkt mit den Werten aufrufen, d.h., das CMD immer zusammen zu stricken. Am Besten klappt das mit String.Format, da du hier die Zahlen auch mit Vornullen aufbereiten kannst.

Eine Hex-Übergabe ist i.Ü. nicht erforderlich, da Zahlen automatisch in das passende Decimal übersetzt werden (daher mit Vor- und Endnullen).
Z.B.:
0012,34 => dec(6, 2)
00012345 => dec(8, 0)
usw.
Zeichenketten werden genauso lang übergeben wie die Konstante ist. Leerzeichen am Ende werden also gebraucht wenn das Empfangsfeld z.B. 20 Zeichen groß ist, dann sind 20 Zeichen zu übergeben.