Реализация библиотеки требует выполнения следующих шагов:
  1. Создание нового проекта динамической библиотеки.
  2. Реализация методов (см. предыдущий параграф).
  3. Определение класса библиотеки, наследуемого от CmaStdLibrary.
  4. Реализация в этом классе единственной функции CreateMethodDef.
  5. Включение в функцию CreateMethodDef кода для создания экземпляра каждого из методов, определяемых данной библиотекой.
  6. Определение GUID класса библиотеки, сгенерированного утилитой guidgen.exe.
  7. Определение фабрики класса и экспортируемых функций DLL. Рекомендуется использовать для этого макросы MA_LIBLIST_BEGIN, MA_LIBRARY, MA_LIBLIST_END.
Макрос MA_LIBRARY имеет 4 аргумента: CLSID класса библиотеки; имя класса библиотеки; текстовая строка, по которой библиотеку можно найти в реестре; комментарий, также заносимый в реестр.

Макросы MA_LIBLIST_BEGIN и MA_LIBLIST_END служат ограничителями списка библиотек, определяемых в данной DLL.

Добавление метода в уже существующую библиотеку возможно при наличии исходного кода и требует выполнения только шагов 2 и 5.

Ниже приводится исходный код, реализующий библиотеку CExampleLib, создающую методы Tune и Calc для алгоритма LSM.

#include 

#include "maComClasses.h"
#include "maComBase.h"

// GUID класса библиотеки, сгенерированный утилитой guidgen.exe
const GUID CLSID_CExampleLib={0x12121212, 0x1212, 0x1212,{0x12, 0x12, 0x12,
                              0x12, 0x12, 0x12, 0x12, 0x12}};


// Класс библиотеки
class CExampleLib : public CmaStdLibrary{
public:
	CExampleLib () {}
	virtual HRESULT STDMETHODCALLTYPE CreateMethodDef
		(maString aname, int methodno, ImaMethodDef** method){
		HRESULT res = S_OK;
		*method = 0;
		if (_wcsicmp(aname, L"LSM")==0) {
			switch (methodno) {
				//case 0: *method = new CLsmTune; break;
				case 0: (*method) = new CLsmCalc(); break;
				default: res = MA_ERR_METHODUNDEF; break;
			}
		}
		if (method==0 && res==S_OK)
			res = MA_ERR_NOMEMORY;
		return res;
	}

};

// макросы для определения фабрики класса и экспортируемых функций

MA_LIBLIST_BEGIN

	MA_LIBRARY(CLSID_CExampleLib,CExampleLib,
			"ForecsysExample.ExampleLib","")

MA_LIBLIST_END