C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Использование dll созданной CBuilder в Excel, Не пойму где ошибка
Turbo
  Отправлено: 29.10.2004, 10:31


Ученик-кочегар

Группа: Участник
Сообщений: 5



Прочитал на www.kornjakov.ru как можно скомпонованную на дельфях dll в excel. Пытаюсь сделать пробный пример на cbuilder простая функция возведения в квадрат

#pragma argsused
USERES("Quadro.res");
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{
return 1;
}

extern "C" __declspec(dllexport) double Kvadrat(double X)
{
return X*X;
}

компоную библиотеку с расширением quadro.dll. Кладу по адресу windows\system32 в макросе visual basic описываю её
Declare Function Kvadrat Lib "quadro.dll" (X As Double) As Double
после пытаюсь использовать в excel пишет в ячейке #знач
может кто-то знает как всё правильно сделать или есть где-то пример

Отредактировано Turbo — 29/10/2004, 11:36
klim
Отправлено: 03.11.2004, 11:24


Не зарегистрирован







При таком объявлении
CODE

extern "C" __declspec(dllexport) double Kvadrat(double X)
{
return X*X;
}

Имя экспортированной функции будет _Kvadrat.
Для того, чтобы сформировать нормальное имя (Kvadrat) нужно добавить __stdcall.
А вообще есть такая чудестная утилита tdump, если вызвать ее так
tdump -ee quadro.dll
можно увидить перечень экспортируемых функции из DLL, а также их правильные имена.
Turbo
Отправлено: 04.11.2004, 10:09


Ученик-кочегар

Группа: Участник
Сообщений: 5



Спасибо. Уже разобрался. Помимо вызова функции __stdcall необходимо
определить def файл с именем, которое понимает excel. Проверил всё работает.

Вернуться в Вопросы программирования в C++Builder