> [...] There are only one task: to convince the library's users do not > forget add 0 in the end of string. You could write a wrapper function which would do this. The wrapper function could be written in BASIC or C. Suitable BASIC code should now be obvious. I assume that BASIC normally passes a string using a descriptor, so the C code for such a wrapper function would be more complicated, but not impossible. (Declare the srgument as a pointer to a suitable descriptor, allocate storage for the NUL-terminated string, copy the non-NUL-terminated string into the new storage, add the NUL, invoke the real C function, free the allocated storage, ...) VMS is generally pretty good for multi-language compatibility. You need to know how each language passes arguments (or can be made to pass them the way you want), and/or how to declare in one language the method used by another. BASIC has those "BY DESC|REF|VALUE" things; Fortran has %LOC, %REF, %VAL, %DESCR; C has nothing or everything, depending on how you look at it; and so on. I suspect that, with enough effort, you could write a wrapper in Fortran or Pascal to do this job, too, but dragging in another language (and its run-time stuff) might be less efficient than sticking with one of the languages which you're already using.