|
|
| Автор |
Сообщение |
Dmitry Пользователь
Зарегистрирован: 22.12.2008 Сообщения: 27
|
Добавлено: Пн Дек 22, 2008 3:58 pm Заголовок сообщения: Проблема в написании Плагина |
|
|
Здравствуйте,
Решил написать маленький плагинчик "Usual". Пишу под Visual C++. Мои функции вызываются. Здесь все нормально. Но не могу вызвать функции модуля "All My Books". Происходит следующее. При загрузки AllMyBooks вызывается ТРИ раза функция Init4, и притом каждый раз с новым значением. После вызова из меню "Плагины" запускается функция AMB_PluginStart4. Я хочу выполнить функцию Вашего модуля. Выполняю:
myProc = (MYPROC) GetProcAddress(theApp.pOwner, "FirstBook");
но он мне на отрез возвращает NULL. Пробовал подставлять все три значения pOwner, которые передаются в Init4 - результат аналогичный.
Может сможете подсказать, в чем может быть проблема. "All My Books" пока не регистрированный, так как его покупка зависит, смогу я написать данный плагин или нет (будет он работать или нет). Мне нужна некоторая дополнительная функциональность с файлами книг, которых у Вас нет. (Я думаю мало кому она будет интересна ).
P.S. Естественно в процедуре Init4 я сохраняю pOwner. |
|
| Вернуться к началу |
|
 |
Dmitry Пользователь
Зарегистрирован: 22.12.2008 Сообщения: 27
|
Добавлено: Ср Дек 24, 2008 1:55 pm Заголовок сообщения: |
|
|
| Всем спасибо. Немного разобрался. Заработало! |
|
| Вернуться к началу |
|
 |
Demitreus Пользователь
Зарегистрирован: 08.09.2011 Сообщения: 10
|
Добавлено: Сб Сен 10, 2011 7:09 pm Заголовок сообщения: |
|
|
Разобрался - поделись с людьми! Понимаю, что много времени прошло, с момента публикования поста, но у меня сейчас аналогичная проблемма с возвращением нуля функции и где копать не пойму
Нужно в описании разработки плагина сделать примерчики для С++ не все программируют на Делфи.
У меня сейчас так в Borland Builder
| Код: |
typedef int __stdcall (*iGetPChar)(char * &s);
void __stdcall Init4(int Owner)
{
OwnerApp = Owner;
}
void __stdcall AMM_PluginStart4()
{
TFirstForm *frm = new TFirstForm(Application);
frm->ShowModal();
delete frm;
}
__fastcall TFirstForm::TFirstForm(TComponent* Owner)
{
char *s = new char[500];
iGetPChar fun = (iGetPChar)GetProcAddress((HMODULE)OwnerApp, "GetLocalPath");
int i=0;
if(fun){
i = fun(s);
}
delete[] s;
}
|
Так вот fun равен NULL. Что не так? |
|
| Вернуться к началу |
|
 |
|