Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.69/26: Рейтинг темы: голосов - 26, средняя оценка - 4.69
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1

Написание plugin к программе

23.08.2012, 23:04. Показов 5624. Ответов 57
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Кто нибудь этим занимался?Может что подскажите?
мне нужно не многое.
Что бы при запуске программы, загрузился мой плагин и выдал бы Hello World)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.08.2012, 23:04
Ответы с готовыми решениями:

Написание Chrome extention (plugin)
Захотелось попробовать написать плагин для хрома, и тут же столкнулся с такой проблемой: зайдя на сайт ВК, у меня должен отправиться запрос...

Написание плагина к программе
Доброго времени суток уважаемые форумчане!Для написание плагина для программы мне на почту прислали интерфейсный файл и описание: CallBack...

Написание комментариев к программе
Добрый день. Очень прошу у знающих людей написать небольшие комментарии по коду программы. Полный проект лежит внизу, в архиве (на всякий...

57
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
27.08.2012, 22:38
Студворк — интернет-сервис помощи студентам
Ну в общем все как в тумане; у меня уже нет идей. Я специально упростил все до безобразия в проекте для Делфи... - вот biss5.rar, и этот плагин адекватно воспринимается практически у всех "просмотрщиков". А "Сишный" приводит к ошибкам!! Возможно, нужно функции к классу привязать, или еще как. Пока у меня "брейнпауза" - ни одной стоящей идеи... (все, что я предполагал ранее - тифозный бред!).
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
27.08.2012, 22:47  [ТС]
nick42,

Не по теме:

был такой сайт пирамида , там всё разбирали с плагинами, но что то он потух


общался я с человеком одним как он сказал -
На официальном сайте программы лежит SDK, там есть примеры на С++, там показано как имя выводится
но что то у меня не вышло...
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
27.08.2012, 22:57
- а у меня аллергия к длинным текстам!
Да! Есть у меня сорцы к плагину EmuNation; но, помнится, у меня этот "ключедавальщик" на разных приложениях брыкался. В конечном счете все это приводило к синему "экрану смерти". Как же я могу этому доверять?! К тому же там столько лишнего кода...! , все равно, что пакет мелкософтовского интернетбраузера дизассемблировать!
1
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
27.08.2012, 23:06  [ТС]
nick42, я о этом)Вернее он об этом)
Вложения
Тип файла: rar SDKv2.0.rar (633.9 Кб, 14 просмотров)
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
28.08.2012, 19:59  [ТС]

Не по теме:

можно попробовать на форуме дрима написать...авось помогут, только английский нужно знать



Добавлено через 20 часов 23 минуты
Вот что ещё нашел
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#ifndef __RC_PLUGIN_H__
#define __RC_PLUGIN_H__
 
#define RC_EXPORT_TYPE  __declspec(dllexport) __cdecl
 
#pragma pack(push,1)
 
#define WPARAM_SEND_RC_CODE                 0x01023004
// For example ::PostMessage(hCommandWmd,WM_USER,WPARAM_SEND_RC_CODE,"Record");
 
struct TRcPluginInfo
{
    int     m_StructSize;
    HWND        m_hCommandWnd; //to plugin
    wchar_t*    m_pConfigName; //to plugin
    wchar_t     m_Name[100];   //from plugin
};
 
 
extern "C" bool RC_EXPORT_TYPE  RcGetInfo(TRcPluginInfo*info);
extern "C" bool RC_EXPORT_TYPE  RcStart();
extern "C" void RC_EXPORT_TYPE  RcStop();
extern "C" void RC_EXPORT_TYPE  RcShowDialog(HWND hwnd);
 
 
 
#pragma pack(pop)
 
#endif //__RC_PLUGIN_H__

Не по теме:

и новая версия Dream вышла

0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
28.08.2012, 23:18

... где-то рядом хожу!.. Вот столько текста в Дельфях создает нормальный имитатор плагина. Но Delphi для меня - "терра инкогнита"; и как нормально перевести это на C++ чтоб работало - я не знаю. Думаю, что какая-то мелочь.__
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
{  SDplug.dpr   - файл проекта}
library SDplug;
 
{$R 'resurs.res' 'resurs.rc'}
uses
  classes,
  UMain in 'UMain.pas';
 
{$R *.res}
end.
//////////////// файл UMain.pas ////////////////////////
unit UMain;
interface
uses    Windows;
 
  procedure On_Send_Dll_ID_Name(var Name:array of char);cdecl; 
  procedure On_Start(); cdecl;
  procedure On_Menu_Select(); cdecl;
 
  exports On_Send_Dll_ID_Name name 'On_Send_Dll_ID_Name';
  exports On_Menu_Select name 'On_Menu_Select';
  exports On_Start name 'On_Start';
 
implementation
 
procedure On_Start() ; cdecl; begin  end;
procedure On_Menu_Select() ; cdecl; begin  end;
procedure On_Send_Dll_ID_Name(var Name:array of char); cdecl;
 const PLUGIN_NAME='SDplug';
 var s:PChar; i:Integer;
 begin
  s:=PLUGIN_NAME;
  for i:=0 to Length(s) do Name[i]:=s[i];
 end;
end.
///////////////////////////////////////////////////////
{ resurs.rc  - файл ресурсов }
EXTERN MENU DISCARDABLE
{
   MENUITEM  "Активность"   40021
   MENUITEM  "Информация"   40022
   MENUITEM  "Сменить ключ" 40023
   MENUITEM  "О программе"  40024
}
***
0
31.08.2012, 02:33  [ТС]

Не по теме:

почти 3000 скачек моей проги только с 1 сайта)простите за off, несдержался

0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
31.08.2012, 12:57
Ddv122, мои поздравления!!
С плагином я тоже, наконец, разобрался. Ключевым было слово __cdecl - я вокруг крутился долго, но не умел переименовывать функции с помощью .def - файла. Вот для примера__
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
//---------------------- Unit2.cpp -----------------------------------------
#include <vcl.h>
#include "Unit2.h"
 
extern "C"           //  resurs.rc    SDplug.def
{
void __cdecl On_Start()  { ; }
void __cdecl On_Send_Dll_ID_Name(char *Name) { strcpy(Name,"SDplug"); }
}
//---------------------- Unit2.h -----------------------------------------
#ifndef _UNIT2_H_
#define _UNIT2_H_
 
extern "C"
{
 void __cdecl On_Start();
 void __cdecl On_Send_Dll_ID_Name(char *Name);
}
#endif
;//---------------------- SDplug.def ----------------------------------------
LIBRARY SDPLUG
EXPORTS
    On_Send_Dll_ID_Name = _On_Send_Dll_ID_Name @2
    On_Start = _On_Start @1
;//--------------------------------------------------------------------------
1
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
31.08.2012, 14:10  [ТС]
nick42, поздравляю тоже)Осталось как то словить выход с плагина/Программы)
и что то у меня не компилируется с файлом SDplug.def

Добавлено через 1 час 3 минуты
Все нашел ошибку...осталось словить отключение...
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
31.08.2012, 14:12
Цитата Сообщение от Ddv122 Посмотреть сообщение
у меня не компилируется с файлом SDplug.def
Нужно файл .def подключить к проекту (Project-Add to project) и убедиться, что в этом файле имя после LIBRARY точно соответствует имени получаемого файла .dll
1
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
31.08.2012, 14:20  [ТС]
nick42, я уже разобрался спасибо..)
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
01.07.2013, 16:39  [ТС]
nick42, Привет)
Если есть возможность, подскажи - почему не обрабатывается событие
C++
1
2
    void __cdecl On_Exit() {};
    void __cdecl DVBPLGClose() {};
Хочу поймать закрытие...но чего то не получается
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
01.07.2013, 16:52
А я просто не понимаю. Через плагин (dll) вызываются функции. Ни "открытия", ни "закрытия" не предполагается. Что ты ловить пытаешься?
1
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
01.07.2013, 17:00  [ТС]
nick42,
Хочу попробовать отключать питание LNB, при закрытии DVBDream к примеру , вот и подумал - что наверное возможно отловить момент "закрытия плагина" или DVBDreamа
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
01.07.2013, 17:05
Ну, готовую программу (DVBDream) без исходного кода ты вряд ли доработаешь, а добраться до деструктора приложения - это уровень серьёзного хакера (я думаю). Во всяком случае через плагин вряд ли получится.
1
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
01.07.2013, 17:11  [ТС]
nick42, это я понимаю , просто я думал что плагин получает "уведомление" о своей выгрузке при закрытие Dreama , и хочу словить этот момент ...
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
01.07.2013, 17:19
Ну, это вообще "Версаль" получается: программа прежде, чем закрыться, уведомляет об этом все прицепившиеся к ней плагины, да еще ждет от них согласия на это, и только потом закрывается...
Это не типично; у DVBDream все по простому, мне кажется.
1
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
01.07.2013, 20:21  [ТС]
nick42, в принципе да...
Просто смотрю есть события , думал мало ли ...
C++
1
2
3
    void __cdecl On_Exit() {};
    void __cdecl DVBPLGClose() {};
    void __cdecl OnClose () {};
nick42, разобрался с меню и узнал как узнать имя кто подключился к dll
попробую ещё отлов закрытия сделать
C++
1
2
3
4
5
6
procedure On_Exit(MDInstance:LongWord;MDWnd:LongWord;Log_Set:BOOL);cdecl;
begin
  inifile.Free;
  mythread.terminate;
  form1.close;
end;
есть пример но не срабатывает...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.07.2013, 20:21

Написание функции на ассемблере для использования в программе на С++
Доброго времени суток! По заданию лабы, необходимо написать функцию на ассемблере, которая посчитает сумму элементов в массиве и...

Посоветуйте литературу по написание основам написание плагинов
пишу курсовую на тему, основы написание плагинов. Посоветуйте литературу.

Plugin C#
Как починить код? Есть главныи проект и плагин к нему Не получается вызвать плагин Спасибо private void...

wobbly plugin
Установил 7ку только пару дней, интересует вопрос есть ли под нее аналог wobbly plugin'a как в линуксе? вот с таким эффектом: ...

ShareMem и plugin-ны
Нужно предать &quot;большой&quot; текст (type string) в dll и вернуть обратно(с изменениями). DLL находиться в подкаталоге, Пробовал ShareMem: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
58
Ответ Создать тему
Новые блоги и статьи
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru