Плагин на Borland C++ Builder 5.0

Только для тех, кто пишет плагины под Total Commander. Обмен опытом, решение проблем.

Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik

Ответить
Hram
Сообщения: 113
Зарегистрирован: Чт май 19, 2005 20:14
Откуда: Питер

Плагин на Borland C++ Builder 5.0

Сообщение Hram »

Подскажите пожалуйста как правильно объявить функции в плагине для Borland C++ Builder 5.0

DllEntryPoint тотал вызывает, а остальные не хочет. Делаю я след. образом:

Код: Выделить всё

*.h

extern "C" __declspec(dllexport)
  int __stdcall FsInit(int PluginNr,tProgressProc pProgressProc,tLogProc pLogProc,tRequestProc pRequestProc);

*.cpp

int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{
    return 1;
}
extern "C" int __stdcall FsInit(int PluginNr,tProgressProc pProgressProc,tLogProc pLogProc,tRequestProc pRequestProc)
{
    return 1;
}
.....
Все 4 функции FsInit(), FsFindFirst(), FsFindNext() и FsFindClose() объявленны. В чем дело не могу понять. Спасибо.
Аватара пользователя
Athari
Сообщения: 81
Зарегистрирован: Сб дек 18, 2004 23:37
Откуда: Казань
Контактная информация:

Сообщение Athari »

Посмотри таблицу экспорта в библиотеке, там какие функции есть и как они выглядят?

Лично у меня в CPP-файле, безо всяких заголовочных, просто extern "C" __declspec(dllexport) тип __stdcall (…).
Последний раз редактировалось Athari Пн авг 20, 2007 18:59, всего редактировалось 1 раз.
«Today is the first day of the rest of your life»
Аватара пользователя
Alextp
Сообщения: 4957
Зарегистрирован: Вс фев 06, 2005 17:21

Сообщение Alextp »

Hram
Сообщения: 113
Зарегистрирован: Чт май 19, 2005 20:14
Откуда: Питер

Сообщение Hram »

Спасибо огромное.
Я пробовал по всякому. И из примера ListSimple тоже.
Но ничего не получалось. Когда уже все было перепробовано решил написать на форум так как стал сомневаться в себе.

Сегодня попробовал еще раз как написал Athari и посоветовал Alextp.
Сначала безрезультатно. Оказалось, что проблема в плагине pm, так как я через него свой устанавливал. Решил попробовать классическим способом и все заработало. Спасибо всем огромное, если б не вы думал бы, что у меня проблема и еще долго мучался.
Ответить