vip.fedor писал(а):Спасибо, но Вы уверенны что это работает?
Это работает! И в теории и в практике, а теория здесь такая:
При передаче строки, (если точнее, то передается указатель на эту строку) при традиционном объявлении VB предварительно конвертирует эту строку в ANSI и передает неюникодной функции указатель на конвертированную строку, а после вызова производит обратную конвертацию. Так вот задача сводится к тому, что-бы избежать этой конвертации и реализуется она следующим образом. В объявлении Declare в ключевом слове Alias указывается юникодный вариант функции с (W), а вместо ByRef Str As String указывается ByVal pStr As Long. А при вызове указывается StrPtr(Str). Таким образом вызываемой функции сразу передается указатель на строку без лишних конвертаций, что собственно и нужно и что собственно и написал iGrok.
PS. Пока писал, Хакер успел ответить раньше