В данный момент вы уже можете построить DLL, но предварительно стоит подправить некоторые настройки проекта. Так как клиентское приложение должно видеть нашу DLL, то ее следует разместить в доступном месте. Самый быстрый способ решить проблему — поместить DLL в папку клиентского проекта. При этом обычно возникает другая, побочная проблема. Оба проекта редко остаются неизменными. Вы будете постоянно находить и исправлять какие-то ошибки, как в DLL (сервере), так и в EXE (клиенте). При этом вам каждый раз придется перемещать новую версию DLL из папки сервера в папку клиента. Это неудобно.
Известный трюк состоит в том, что вы один раз в настройках проекта указываете, желаемое местоположение DLL — в какой-либо легко доступной папке (например, C:/Debug). Это же следует проделать и для клиентского проекта (указав местоположение EXE-модуля). Тогда оба файла (клиент и сервер) всегды будут в одной и той же папке. Полезно завести привычку делать это при создании любого проекта. При этом значительно экономится время на отладку, да и место на диске. В общей папке С:/Debug будет много разных EXE и DLL-файлов с разными именами. Все друг друга видят и никаких проблем. Одну папку проще уничтожить, в ней проще найти последний проект. Для того, чтобы сделать подобные установки:
¨ Откройте диалог Property Pages, выделив проект и дав команду View4Property Pages.
¨ В дереве слева найдите и выделите узел Configuration Properties4General, а в списке справа найдите строку: Output Directory. Введите в нее такой путь C:/Debug.
¨ Далее, слева найдите и выделите узел Linker4General, а в списке справа найдите строку: Output File. Введите в нее такой путь C:/Debug/$(ProjectName).dll.
¨ Нажмите OK. Значение макроса $(ProjectName) зависит от имени вашего проекта.
¨ Постройте проект, дав команду Build4Rebuild Solution.
Признаком успеха является следующее сообщение. Оно должно появиться в окне Output4Build.
Creating library C:\Debug/MyDLL.lib and object C:\Debug/MyDLL.exp
Теперь можно приступить к созданию клиентского приложения, которое воспользуется услугами нашей DLL. Контур главной программы вырисовывается таким:
¨ Запросить у пользователя размерность системы линейных алгебраических уравнений.
¨ Выделить память для расширенной матрицы системы и вектора неизвестных.
¨ Определить и заполнить матрицу способом, рассматриваемым ниже.
¨ Вызвать функцию, вычисляющую вектор неизвестных (методом Гаусса).
¨ Вывести результаты.
В соответствии со структурным подходом каждое из перечисленных действий можно оформить в виде отдельного программного модуля (функции C++). Главную программу можно записать, ввести и даже отладить, несмотря на то, что возможно еще нет кодов для других модулей: задания системы уравнений в виде расширенной матрицы и процедуры решения системы. Создайте новый проект клиентского приложения и добавьте его к уже существующему решению.
¨ В окне Solution Explorer выделите Solution — решение. Будьте внимательны, выберите именно решение, а не проект. Из контекстного меню выберите команду Add4New Project.
¨ В диалоге Add New Project (в дереве Project Type) раскройте узел Visual C++ Projects4Win32. В окне Templates выберите шаблон — Win32 Console Project.
¨ В окне Name задайте имя решения MyDLLClient.
¨ В окне Location задайте местоположение проекта. Пусть он будет внутри папки MyDLL и нажмите OK.
¨ В окне мастера Win32 Application Wizard выберите страницу Application Settings, и убедитесь, что мастер действительно создает консольное и не пустое приложение.
¨ Нажмите Finish.
¨ Сразу настройте проект так, чтобы папка с выходным файлом была той же, что и для DLL. Откройте диалог Property Pages, выделив проект и дав команду View4Property Pages.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.