I would suggest to use the argument/property way.
using a file can lead to many more (File) errors and is easy to abuse by others.

A way to reduce the time to marshall is using an init function to pass
data: in a ; delimited string as 1 argument, using a variant to pass an array containing the neccesary data, or an object/class using late binding in your dll