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. Проверил всё работает. |
|