Страница: 1 | 2 | 3 | 4 | 
		
		 
			   
			 
			 Пожалуйста переведите мне на VB.... сильно надо..... Есть два фалика: Gen.h ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' typedef struct { #define GPPHDR_VER 0x10extern winampGeneralPurposePlugin *gen_plugins[256]; ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' TrayCTL.c и     #include <windows.h> #define ENABLE_PREV 1 char *tips[5] = { // from systray.c BOOL CALLBACK ConfigProc(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARAM lParam); winampGeneralPurposePlugin plugin = void do_icons() void quit() void *lpWndProcOld; int init()  do_icons();  return 0;   BOOL CALLBACK ConfigProc(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARAM lParam) 
			 
			 Импоси[sensored]... Там же чистый WinAPI, а как можно на VB управлять окном на уровне хэндла, да ещё и с менеджером сообщений работать... Увы, мой друг, увы... Ну раз тут Api значит из VB это возможно, вот тока как со структурой быть..... Ну хорошо что хоть перевести просят не из Assembler'a Вот перевод типов ATOM  ByVal variable As Integer   BOOL  ByVal variable As Long   BYTE  ByVal variable As Byte   CHAR  ByVal variable As Byte   COLORREF  ByVal variable As Long   DWORD  ByVal variable As Long   HWND, HDC, HMENU, etc. (Windows handles)  ByVal variable As Long   INT, UINT  ByVal variable As Long   LONG  ByVal variable As Long   LPARAM  ByVal variable As Long   LPDWORD  variable As Long   LPINT, LPUINT  variable As Long   LPRECT  variable As type   LPSTR, LPCSTR  ByVal variable As String   LPVOID  variable As Any (use ByVal when passing a string)   LPWORD  variable As Integer   LRESULT  ByVal variable As Long   NULL  As Any or ByVal variable As Long ByVal Nothing or ByVal 0& or vbNullString   SHORT  ByVal variable As Integer   VOID  Sub procedure   WORD  ByVal variable As Integer   WPARAM  ByVal variable As Long   По поводу звёздочки. Вроде это указаталь на адрес переменной. Думаю что в случае VOID это указатель на адрес процедуры. Скорее всего решается с помощью addressof. Насчет типов понятно, спасибо, по поводу указателей я знал, а вот какой аналог структуры Си в VB? Есть волшебное слово type... Не ну это ясно понятно что это Type ты мне скажи как записать вот эти строки  int (*init)(); 
			
 
  
		
     
  
    
Вопрос: Люди кто в VC++ шарит....                         
     
    
Добавлено: 07.08.03 16:50
     
      
  
				
			  
					 
			
				 
    
		
       
    
Автор вопроса:  
     AlexR | ICQ: 191277526
 AlexR | ICQ: 191277526 
      
       
  
 
    
 int version;
 char *description;
 int (*init)();
 void (*config)();
 void (*quit)();
 HWND hwndParent;
 HINSTANCE hDllInstance;
} winampGeneralPurposePlugin;
typedef winampGeneralPurposePlugin * (*winampGeneralPurposePluginGetter)();
#include <process.h>
#include "gen.h"
#include "resource.h"
BOOL WINAPI _DllMainCRTStartup(HANDLE hInst, ULONG ul_reason_for_call, LPVOID lpReserved)
{
 return TRUE;
}
#define ENABLE_PLAY 2
#define ENABLE_STOP 4
#define ENABLE_NEXT 8
#define ENABLE_EJECT 16
int config_enabled=0;
HICON Icons[5];
 "Previous Track - Winamp",
 "Play/Pause - Winamp",
 "Stop - Winamp",
 "Next Track - Winamp",
 "Open File - Winamp"
};
extern BOOL systray_add(HWND hwnd, UINT uID, HICON hIcon, LPSTR lpszTip);
extern BOOL systray_del(HWND hwnd, UINT uID);
void config();
void quit();
int init();
void config_write();
void config_read();
char szAppName[] = "Nullsoft Tray Control";
{
 GPPHDR_VER,"",init,config,quit,
};
{
 static int l=0;
 int i;
 if (l == config_enabled) return;
 for (i = 4; i >= 0; i --)
 {
  if (l & (1<<i))
   systray_del(plugin.hwndParent,i);
 }
 l=config_enabled; 
 for (i = 0; i < 5; i ++)
 {
  if (config_enabled & (1<<i))
   systray_add(plugin.hwndParent,i,Icons[i],tips[i]);
 }
}
void config()
{
 DialogBox(plugin.hDllInstance,MAKEINTRESOURCE(IDD_DIALOG1),plugin.hwndParent,ConfigProc);
}
{
 config_write();
 config_enabled=0;
 do_icons();
}
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
 if (message == WM_USER+27)
 {
  int which = LOWORD(wParam) - 1024,a;
  switch (LOWORD(lParam))
  {
   case WM_LBUTTONDOWN:
    switch (which)
    {
     case 0:
      if ((a=SendMessage(hwnd,WM_USER,0,104)) == 0) // not playing, let's 
                  // hit prev
      {
       SendMessage(hwnd,WM_COMMAND,40044,0);
      }
      else if (a != 3 && SendMessage(hwnd,WM_USER,0,105) > 2000) // restart
      {
       SendMessage(hwnd,WM_COMMAND,40045,0);
      } else { // prev
       SendMessage(hwnd,WM_COMMAND,40044,0);
      }
     return 0;
     case 1:
      if ((a=SendMessage(hwnd,WM_USER,0,104)) != 1) // not playing, let's 
                  // hit play
      {
       SendMessage(hwnd,WM_COMMAND,40045,0);
      }
      else { // prev
       SendMessage(hwnd,WM_COMMAND,40046,0);
      }
     return 0;
     case 2:
      if (GetKeyState(VK_SHIFT) & (1<<15))
       SendMessage(hwnd,WM_COMMAND,40147,0);
      else
       SendMessage(hwnd,WM_COMMAND,40047,0);
     return 0;
     case 3:
      SendMessage(hwnd,WM_COMMAND,40048,0);
     return 0;
     case 4:
      SetForegroundWindow(hwnd);
      if (GetKeyState(VK_CONTROL) & (1<<15))
       SendMessage(hwnd,WM_COMMAND,40185,0);
      else if (GetKeyState(VK_SHIFT) & (1<<15))
       SendMessage(hwnd,WM_COMMAND,40187,0);
      else
       SendMessage(hwnd,WM_COMMAND,40029,0);
     return 0;
    }
   return 0;
  }
 }
 return CallWindowProc(lpWndProcOld,hwnd,message,wParam,lParam);
}
{
 {
  static char c[512];
  char filename[512],*p;
  GetModuleFileName(plugin.hDllInstance,filename,sizeof(filename));
  p = filename+lstrlen(filename);
  while (p >= filename && *p != '\\') p--;
  wsprintf((plugin.description=c),"%s Plug-In v0.1 (%s)",szAppName,p+1);
 }
 config_read();
 {
  int i;
  for (i = 0; i < 5; i ++)
   Icons[i] = LoadIcon(plugin.hDllInstance,MAKEINTRESOURCE(IDI_ICON1+i));
 }
 lpWndProcOld = (void *) GetWindowLong(plugin.hwndParent,GWL_WNDPROC);
 SetWindowLong(plugin.hwndParent,GWL_WNDPROC,WndProc);
}
{
 switch (uMsg)
 {
  case WM_INITDIALOG:
   {
    int i;
    for (i = 0; i < 5; i++)
     CheckDlgButton(hwndDlg,IDC_PREV+i,(config_enabled&(1<<i))?BST_CHECKED:BST_UNCHECKED);
   }
  return FALSE;
 &
				
		
		
					 
			
				 
  
		
     
  
    
Ответы
     
    
Всего ответов: 46
     
      
  
		
	  
			 
	
		 
    
       
    
Номер ответа: 1 
      
Автор ответа: Seg@
 Seg@



ICQ: 162261148 
Вопросов: 1
Ответов: 3
      
 Web-сайт:  
 Профиль |  | #1
      
Добавлено:  07.08.03 17:24
       
    
       
  
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 2 
      
Автор ответа: AlexR
 AlexR





ICQ: 191277526 
Вопросов: 2
Ответов: 5
      
 Профиль |  | #2
       
Добавлено:  07.08.03 17:33
       
    
       
  
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 3 
      
Автор ответа: HACKER
 HACKER








 
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
      
 Профиль |  | #3
       
Добавлено:  07.08.03 23:54
       
    
       
  
 
     Первый раз вижу подобный вопрос на этом форуме!
 Первый раз вижу подобный вопрос на этом форуме!
		
	  
			 
	
		 
    
       
    
Номер ответа: 4 
      
Автор ответа: CyRax
 CyRax 




Разработчик Offline Client
ICQ: 204447456 
Вопросов: 180
Ответов: 4229
      
 Web-сайт:  
 Профиль |  | #4
      
Добавлено:  08.08.03 06:40
       
    
       
  
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 5 
      
Автор ответа: AlexR
 AlexR





ICQ: 191277526 
Вопросов: 2
Ответов: 5
      
 Профиль |  | #5
       
Добавлено:  08.08.03 08:32
       
    
       
  
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 6 
      
Автор ответа: Seg@
 Seg@



ICQ: 162261148 
Вопросов: 1
Ответов: 3
      
 Web-сайт:  
 Профиль |  | #6
      
Добавлено:  08.08.03 12:01
       
    
       
  
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 7 
      
Автор ответа: AlexR
 AlexR





ICQ: 191277526 
Вопросов: 2
Ответов: 5
      
 Профиль |  | #7
       
Добавлено:  08.08.03 12:16
       
    
       
  
 
    
void (*config)();
void (*quit)();
это указатели на функции, так как в типе описать это?
		
	  
			 
	
		 
    
       
    
Номер ответа: 8 
      
Автор ответа: Оракул
 Оракул

Вопросов: 0
Ответов: 1
      
 Профиль |  | #8
       
Добавлено:  04.08.06 17:34
       
    
       
  
Подскажите пожалуйста как на VC++ 6.0 в MFC нажав на кнопку импортировать текст(фрагмент html 
 
    
кода) в HTML страницу.
Очень нужно нигде нет обучалки по этому вопросу. Пожалуйста помогите чайнику. Желательно 
попоробнее в я начинающий.
		
	  
			 
	
		 
    
       
    
Номер ответа: 9 
      
Автор ответа: HACKER
 HACKER








 
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
      
 Профиль |  | #9
       
Добавлено:  04.08.06 18:09
       
    
       
  
 
    
кода) в HTML страницу. 
подробнее...
		
	  
			 
	
		 
    
       
    
Номер ответа: 10 
      
Автор ответа: shuffle
 shuffle







Администратор
ICQ: 201502381 
Вопросов: 15
Ответов: 737
      
 Профиль |  | #10
       
Добавлено:  04.08.06 19:06
       
    
       
  
 
    
Следующим образом.
В модуле:
Public Type winampGeneralPurposePlugin
   version As Long
   description As String
   initaddr As Long
   configaddr As Long
   quitaddr As Long
   hwndParent As Long
   hDllInstance As Long
End Type
Public Function GetAddress(ByVal func As Long) As Long
   GetAddress = func
End Function
Public Sub config()
   '...
End Sub
Public Sub quit()
   '...
End Sub
Public Function init() As Long
   '...
End Function
В форме:
'winampGeneralPurposePlugin plugin =
'{
' GPPHDR_VER,"",init,config,quit,
'};
'#define GPPHDR_VER 0x10
Private Const GPPHDR_VER = &H10
Private plugin As winampGeneralPurposePlugin
Private Sub Form_Load()
   plugin.version = GPPHDR_VER
   plugin.initaddr = GetAddress(AddressOf init)
   plugin.configaddr = GetAddress(AddressOf config)
   plugin.quitaddr = GetAddress(AddressOf quit)
End Sub
		
	  
			 
	
		 
    
       
    
Номер ответа: 11 
      
Автор ответа: Sharp
 Sharp










Лидер форума
ICQ: 216865379 
Вопросов: 106
Ответов: 9979
      
 Web-сайт:  
 Профиль |  | #11
      
Добавлено:  06.08.06 19:25
       
    
       
  
За полный перевод 20 wmz, кто меньше?  
     
		
	  
			 
	
		 
    
       
    
Номер ответа: 12 
      
Автор ответа: shuffle
 shuffle







Администратор
ICQ: 201502381 
Вопросов: 15
Ответов: 737
      
 Профиль |  | #12
       
Добавлено:  07.08.06 01:09
       
    
       
  
15 wmz  
     
		
	  
			 
	
		 
    
       
    
Номер ответа: 13 
      
Автор ответа: Sharp
 Sharp










Лидер форума
ICQ: 216865379 
Вопросов: 106
Ответов: 9979
      
 Web-сайт:  
 Профиль |  | #13
      
Добавлено:  07.08.06 11:53
       
    
       
  
14
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 14 
      
Автор ответа: HACKER
 HACKER








 
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
      
 Профиль |  | #14
       
Добавлено:  07.08.06 16:33
       
    
       
  
ыыыыыы дык гатовое есть  
     )))
)))
13 !!!!!!!!!
		
	  
			 
	
		 
    
       
    
Номер ответа: 15 
      
Автор ответа: Sharp
 Sharp










Лидер форума
ICQ: 216865379 
Вопросов: 106
Ответов: 9979
      
 Web-сайт:  
 Профиль |  | #15
      
Добавлено:  08.08.06 11:23
       
    
       
  
12.5