www.adept7.kiev.ua
| Форум| Гостевая| Ссылки| Программы| Исходные тексты| Наши партнеры.|
   
| Главная| Рассылки| Услуги| Библиотека| Новости| Авторам| Программистам| Студентам|
delphi c++ assembler
  http://tikitak.narod.ru ---- Главная страница сайта

Шаг 46 - Dll для Excel

Создание проекта

Создаем обычную динамическую библитеку. Выбираем файл, создать, потом Win32 Dynamik-Link Library. Незабудьте указать имя проекта :-)

step46.gif (1600 b)

И три файла в проекте

testdll.cpp
testdll.h
testdll.def

Создаем код

testdll.cpp
#include "testdll.h"

void WINAPI MyTest()
{
  MessageBox(0,"Hellos","Dll",MB_OK);
}
testdll.h
#include "windows.h"

extern "C"
{
void WINAPI MyTest();
}
testdll.def
EXPORTS
		MyTest 	@1
Описание и макрос Excel
Declare Sub MyTest Lib "testdll.dll" ()
________________________________________
Sub Test()
 MyTest
End Sub

Описание

Первым шагом мы реализовали саму функцию в CPP файле. Вобщем всё тривильно, за исключением модификатора WINAPI. Существует несколько моделей вызовов функций. Для использования в Windows модель вызовов функций PASCAL. Для соответсвия требованиям WIN32 API и добавлен модификатор.

Дальше в testdll.h мы описали данную функцию. Но применили опять модификатор для приведения имен функций к стандарту C. Применение этого стандарта гарантирует поддержку Ваших имен функций другими программами. Если DLL создается именно для вашего приложения, то это не важно, но если Вы собрались поделиться ей с миром, то должны обеспечить совместимость.

И последним шагом заполнили def файл, описав функцию MyTest как функцию экспорта, то есть что она будет извлекаться из DLL.

Теперь собирайте проект. Полученную DLL нужно поместить в каталог Windows/System или просто Windows или WinNT, если Windows NT. При вызове функции из DLL необходимо чтобы DLL была найдена. В описанных каталогах операционная система обязательно посмотрит.

Теперь запустите Excel, создайте макрос, опишите функцию и код макроса. Пояснений я сюда писать не буду, т.к. это касается программирования VBA. А если вы этого не умеете зачем вам этот шаг, хотя на бейсике программировать может каждый.

Запускайте макрос. Если Вы всё сделали правильно, то увидите диалогвое окно созданное функцией DLL.

Это очень хорошая возможность. Применив данную технику Вы можете расширить возможности любой программы, которая имеет макроязык и функции работы с DLL. Перечислю на взлет, все программы Microsoft Office, Corel Draw (Corel Script), AutoCad (VBA), ArcView (Avenue) и т.д.


Шпаргалка

Функция должна быть описана в стандарте С
extern "C"
{
 ............
}
Вызов должен быть в стандарте вызовов Window
...... WINAPI ........ ;


Предыдущий Шаг | Следующий Шаг | Оглавление

By Artem.
Используются технологии uCoz
 

Rambler's Top100 Rambler's Top100

©  Adept Design Studio

Используются технологии uCoz