Программирование на С++ - eDrive
Программирование на С++ - eDrive
Программирование на С++ - eDrive
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
16<br />
VCL. Сохранить файлы проекта под ориги<strong>на</strong>льными име<strong>на</strong>ми, <strong>на</strong>пример<br />
myDLLLIB1.cpp, myDLLLIB1.bpr. Создать, также, файл заголовка с помощью<br />
шабло<strong>на</strong> File.New.Header File с объявлением требуемых функций, <strong>на</strong>пример:<br />
#include <br />
extern "C" void __declspec (dllexport) MyFill (double *v, int cz);<br />
extern "C" void __declspec (dllexport)<br />
MyVectorToGrid (double *v, int c, int sz, TStringGrid *sg);<br />
extern "C" void __declspec (dllexport)<br />
MyGridToVector (double *v, int c, int sz, TStringGrid *sg);<br />
Лексема __declspec со спецификатором класса памяти dllexport включается<br />
для совместимости разрабатываемой библиотеки с компиляторами Microsoft<br />
C/C++. Сохранить этот файл (<strong>на</strong>пример, myDLLLIB1.h), включить его<br />
в проект через меню Project.Add To Project и подключить к модулю библиотеки<br />
(File.Include Unit Hdr…). В файле кода модуля определить объявленные<br />
функции, <strong>на</strong>пример:<br />
void MyGridToVector (double *v, int c, int sz, TStringGrid *sg)<br />
{ for(int i=0; iCells [c][i+1]); }<br />
Скомпоновать проект (Project.Build…) и убедиться, что в папке проекта<br />
сформировались два файла: библиотека статической компоновки<br />
myDLLLIB1.lib и библиотека ди<strong>на</strong>мической компоновки myDLLLIB1.dll.<br />
2. Статическая компоновка. Создать проект с формой, отвечающей заданию<br />
первой работы, но без функций передачи столбца в массив, массива в<br />
столбец и заполнения массива. Добавить в проект файл библиотеки статической<br />
компоновки (Project.Add To Project), подключить к форме его файл<br />
заголовка и организовать вызовы необходимых функций, <strong>на</strong>пример:<br />
#include "myDLLLIB1.h"<br />
void __fastcall TForm1::Button1Click (TObject *Sender)<br />
{ int r = StrToInt (Edit1–>Text);<br />
MyFill (myVector0, r);<br />
MyFill (myVector1, r);<br />
MyVectorToGrid (myVector0, 0, r, StringGrid1);<br />
MyVectorToGrid (myVector1, 1, r, StringGrid1); }<br />
Убедиться в идентичности приложения первой работе.<br />
3. Разработка библиотеки с формой. Создать новый проект библиотеки с<br />
помощью шабло<strong>на</strong> DLLWizard и сохранить его в одной папке с только что