if you worry about your string parameter passing to your dll - wrap your DLL in COM - see marshalling benefits InsideCOM:
A component implementing the IDispatch interface need not worry about marshaling since this is a standard interface and the system has a built-in marshaler for IDispatch in oleaut32.dll, which is included with every 32-bit Windows system.