Так... В общем замена __cdecl на __stdcall и замена прототипа функции основного модуля на:
- Код: Выделить всё
const LPSTR Test(LPSTR Params)
дала положительный результат

Но как говорится не без ложки дегтя... Во-первых - так и не удалось получить строку по указателю.
- Код: Выделить всё
Declare Function lstrcpy Lib "kernel32" Alias "lstrcpyA" (ByVal lpString1 As String, ByVal lpString2 As Long) As Long
или
Declare Function lstrcpy Lib "kernel32" Alias "lstrcpyA" (ByVal lpString1 As Any, ByVal lpString2 As Any) As Long
Эффект тот-же - результат - пустая строка...
Кроме того, dll-ка получает строку, но если это символы меньше 128, то результат - 1 символ, если больше 128 - "иероглифы"

Подозреваю, что это связано с форматом хранения строки в VB (2 байта). Тогда каждый символ анлийского текста вторым байтом имеет 0, что расценивается dll как конец строки - отсюда и 1 символ. Вот и вопрос: как сконвертить строку в нужный формат и как-же все-таки получить строку, зная указатель?

То, что для одних константа, для других только переменная...