C++Builder
  Начало   Форум   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: не запускается плагин  (Прочитано 5975 раз)
alecksis
Участник
**

Сказали спасибо: +0/-0
Offline Offline

Сообщений: 3


« : 15 сентября 2007, 21:20:12 »

написал плагин на билдере. вроде winamp находит точку доступа, бибикает. и что ему еще нужно. только указатели на функции, переданные в структуре не хотят грузиться ни в какую.

я думаю, что проблема в возврате структуры. билдер возвращет не тот указатель чтоли. т.к. ни одна функция (переданная по указателю) не хочет выполяться. потому как весь код, который мне нашелся на vc++, пришлось добавлять __stdcall в функцию входа, чтоб винамп видел плагин, может и к указателю что-то похожее нужно дописать?
а когда пробую проверить мой плагин в списке плагинов (тогда должна вызваться функция config) винамп ваще вылетает. вот такой блэк:

#include <vcl.h>
#pragma hdrstop

#include "pluginFunc.h"
#include "winbase.h"

#pragma package(smart_init)
#pragma resource "*.dfm"

typedef struct {
  int version;     
  char *description; 
  int (*init)();     
  void (*config)();   
  void (*quit)();   
  HWND hwndParent;   
  HINSTANCE hDllInstance; 
} winampGeneralPurposePlugin;

//---------------------------------------------------------------

int init(void)
{
Beep(1400,100);
return 0;
}

void config(void)
{
return;
}

void quit(void)
{
delete pluginForm;
Beep(1000,100);
return;
}

winampGeneralPurposePlugin plugin ={
   1,
   "my PLG !!!!!!!!!!!!!",
   init,
   config,
   quit,
};

extern "C" winampGeneralPurposePlugin *  __stdcall __declspec(dllexport) winampGetGeneralPurposePlugin()
{
Beep(1000,100);
return &plugin;
}
Записан
alecksis
Участник
**

Сказали спасибо: +0/-0
Offline Offline

Сообщений: 3


« Ответ #1 : 16 сентября 2007, 23:38:00 »

оказуецца, что все дело было не в функциях, а только в одной мелнькой параметре:

int version; - это не версия плагина. это, как мне пояснили, версия структуры. ее значение дожно быть таким: 0x10

winampGeneralPurposePlugin plugin ={
   0x10,
   "my plugin !!!!!!!!!!!!!",
   init,
   config,
   quit,
};
 Целующий
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в: