Страница: 1 | 
		
		 
			   
			 
			  Просто захотелось проверить кто знает три VB-шных функции: ObjPtr, StrPtr и VarPtr.  Которые являются указателями(pointer) на адрес памяти: ObjPtr - Объекта StrPtr - Строчной VarPtr - Числовой переменных.  Пример: В API-шных ф-ях бывает когда нужно передать параметром не саму переменную, а адрес на неё. Возьмём к примеру тип: typedef struct {   // cc      DWORD        lStructSize;      HWND         hwndOwner;      HWND         hInstance;      COLORREF     rgbResult;      COLORREF*    lpCustColors;      DWORD        Flags;      LPARAM       lCustData;      LPCCHOOKPROC lpfnHook;      LPCTSTR      lpTemplateName;  } CHOOSECOLOR;  А если по русски (на VB): Type CHOOSECOLOR 	lStructSize As Long 	hwndOwner As Long 	hInstance As Long 	rgbResult As Long 	lpCustColors As Long 	flags As Long 	lCustData As Long 	lpfnHook As Long 	lpTemplateName As String End Type Здесь "COLORREF*    lpCustColors" - указатель на адрес. Подозреваю что знак "*" в Си++ этим и является. Но на Си++ это делается так:   Dim HandleToMemory As Long, PointerToMemory As Long, CustomColors(15) as Long   Dim cc As CHOOSECOLOR   HandleToMemory = GlobalAlloc(GMEM_MOVEABLE Or GMEM_ZEROINIT, 64)   PointerToMemory = GlobalLock(HandleToMemory)   ' 16 элементов по 4 байта   CopyMemory ByVal PointerToMemory, CustomColors(0), 64     cc.lpCustColors = PointerToMemory На VB же это решается гораздо проще:   cc.lpCustColors = VarPtr(CustomColors(0)) 
			 
			 Кстати, неплохо было бы их добавить в раздел "Справочник по VB" этого сайта. Чё, внатуре никто не знает? Дело в том что это недокументированные функции. Но раз они VB-шные, то знать их всё равно надо. Страница: 1 | 
 
			
 
  
		
     
  
    
Вопрос: Всем: Небольшой опрос                             
     
    
Добавлено: 04.08.03 04:30
     
      
  
				
			  
					 
			
				 
    
		
       
    
Автор вопроса:  
     CyRax
 CyRax  | Web-сайт: basicproduction.nm.ru | ICQ: 204447456
 | Web-сайт: basicproduction.nm.ru | ICQ: 204447456 
      
       
  
 
    
				
		
		
					 
			
				 
  
		
     
  
    
Ответы
     
    
Всего ответов: 3
     
      
  
		
	  
			 
	
		 
    
       
    
Номер ответа: 1 
      
Автор ответа: CyRax
 CyRax 




Разработчик Offline Client
ICQ: 204447456 
Вопросов: 180
Ответов: 4229
      
 Web-сайт:  
 Профиль |  | #1
      
Добавлено:  04.08.03 04:52
       
    
       
  
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 2 
      
Автор ответа: shuffle
 shuffle







Администратор
ICQ: 201502381 
Вопросов: 15
Ответов: 737
      
 Профиль |  | #2
       
Добавлено:  04.08.03 14:52
       
    
       
  
Я думаю многие эти ф-ции знают, кто с API работал....
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 3 
      
Автор ответа: CyRax
 CyRax 




Разработчик Offline Client
ICQ: 204447456 
Вопросов: 180
Ответов: 4229
      
 Web-сайт:  
 Профиль |  | #3
      
Добавлено:  05.08.03 04:19