Как получить данные по ссылке void * - страница 2

 
sergeev:

Не знаю, что за указатель возвращает GlobalLock.

Если это указатель на юникодную строку, то можно объявить как string GlobalLock(long hMem).


Если это некоторая структура в которой храниться строка, то нужно использовать dll например bool GetString(long hMem,string &str).
Внутри этой функции провести GlobalLock и скопировать данные в строку (не забудьте перед вызовом распределить буфер строки при помощи StringInit на нужную длину)

 
mql5:
Не знаю, что за указатель возвращает GlobalLock.

Если это указатель на юникодную строку, то можно объявить как string GlobalLock(long hMem).

я делал так, но в этом случае в string записывался просто адрес, а не содержимое адреса
 

Я на MT4 пользовался такими конструкциями:

#import "kernel32.dll"
   string lstrcat(int dst, string src);
   int MulDiv(int& pInt[],int numerator,int denominator);
   int LocalAlloc(int flags, int size);
   int LocalFree(int hLocal);
#import

...

string GetLVItemText2(int hWnd, int iItem, int iSubItem)
{
   int item[11];
   int pText = LocalAlloc(LPTR,256);
   if(pText!=0)
   {
	...

         ret = StringConcatenate(lstrcat(pText,""),"");
	...

      return(ret);
   }else return("");   
}

Основная идея заложена в конструкции:

lstrcat(pText,"")

 

 
sergeev:
я делал так, но в этом случае в string записывался просто адрес, а не содержимое адреса

1) на счёт long вместо int я поспешил с рекомендацией . Рассматривается вариант введения нового типа указатель системы.

2) возможно ли, что вы описывали функцию не как строковую, а как числовую? нужно писать именно так string GlobalLock(int hMem).

 
mql5 писал(а)  :

1) на счёт long вместо int я поспешил с рекомендацией . Рассматривается вариант введения нового типа указатель системы.

2) возможно ли, что вы описывали функцию не как строковую, а как числовую? нужно писать именно так string GlobalLock(int hMem).

в приницпе уже разобрались что и как. и пример реализации - в скрипте - clipboard.
 
mql5:

1) на счёт long вместо int я поспешил с рекомендацией . Рассматривается вариант введения нового типа указатель системы.

 

Вот это - очень хорошо. А функции для работы с такими указателями будут?
 
api:
А функции для работы с такими указателями будут?
Могу только сказать ВОЗМОЖНО.