Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.08.2011, 10:26   #1
farique
Новичок
Джуниор
 
Регистрация: 30.08.2011
Сообщений: 1
Восклицание Строки, указатели и DLL

Добрый день!

Никогда не писал на vba, но понадобилось решить задачу. Сегодня столкнулся с проблемой.
Суть задачи: подключить DLL, передать ей команду (строку) и получить ответ. Обмен строками в utf-8.

Решил действовать в "лоб".
1) Подключил dll, описал функцию.
Private Declare Function SendFunc Lib "somelib.dll" _
(ByVal lpMess As Long) As Long

2) Далее стал передовать в функцию

Dim str As String
Dim pAns As Long

str = "some text"
lpAns = SendFunc(StrPtr(str))

Обратно получаю ответ (ответ тоже идет в utf-8), используя: (нашел в интернете)

Private Function PointerToString(lngPtr As Long) As String
Dim strTemp As String
Dim lngLen As Long

If lngPtr Then
lngLen = lstrlenW(lngPtr) * 2
If lngLen Then
strTemp = Space(lngLen)
CopyMemory strTemp, ByVal lngPtr, lngLen
PointerToString = Replace(strTemp, Chr(0), "")
End If
End If
End Function

В итоге возникает проблема. 1. Библиотека говорит, что посылаемые мною команды неверны, хотя они верные. Я думаю, что это из-за кодировки. 2. Возвращаемое значение читается, но порой "выскакивают" лишние символы. Я думаю, что это тоже из-за кодировки.
Есть ли у вас какие-нибудь идеи? Где копать?
Как правильно преобразовывать строку в указатель и обратно? И как кодировать в utf8?
farique вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Указатели и строки(С) Alina_Honey Помощь студентам 0 03.06.2011 02:04
С++ Строки + указатели S1av0k Помощь студентам 4 03.12.2010 20:43
Указатели в DLL Creadth Общие вопросы Delphi 8 17.04.2009 19:07
Указатели на строки koljakolja Общие вопросы C/C++ 2 17.10.2008 22:57