Notes C API. Это просто, если знаешь что делать :)

В прошлом году HCL выпустила обновление C API, но к моему удивлению, в интернете статей уровня "Hello world" я не нашел. То ли все и так всё знают, то ли никому это не интересно, но в итоге мне пришлось пройти весь путь до своего первого приложения самостоятельно. Причем 2 раза - один раз для компиляции под Windows, а затем еще под Mac OS. 

Если учитывать, что мои познания в Cи ограничиваются несколькими приложениями в институте,  то не удивительно, что пару раз я прочно застрял. К счастью, у меня была возможность обратиться за помощью к опытным специалистам. Большое спасибо Сергею Голубеву (CyOne) и Михаилу Бегунову (Касперский). Без их помощи я еще долго читал бы документацию.

После того, как у меня получилось, я решил написать эту статью, где опишу все этапы, которые необходимо выполнить для компиляции вашего приложения с использованием C API на Windows. Если вам будет необходимо пройти весь путь на Mac OS - я либо допишу в эту статью, либо напишу еще одну.

Для нашего будущего приложения будет использоваться код программы intro, которое входит в состав Notes API (.\notesapi\samples\basic\intro). 

Разумеется, необходимо, чтобы у вас были базовые знания синтаксиса языка C (или C++) - если их нет, то лучше вернуться к этой статье позже, когда они у вас появятся. 

Требования к окружению:

  • Установлена IDE VS Community
  • Установлен Notes 11
  • В переменной окружения PATH добавить путь к папке Notes
  • Скачан и разархивирован Notes API 

1. Запустите VS Community и нажмите Create new project


2. Выберите Empty project и нажмите Next


3. Укажите название проекта Intro и нажмите Create

4. Добавьте в проект существующий файл intro.c, который находится в папке .\notesapi\samples\basic\intro


5. Запустите окно настроек проекта

6. В разделе "VC++ Directories" и укажите в параметрах Include Directories и Library Directories пути на соответствующие папки разархивированного Notes API и нажмите Apply


7. В разделе "C/C++ -> Preprocessor" добавьте значение "W32" в параметр "Preprocessor definition" и нажмите Apply

8. В разделе "Linker -> Input" добавьте значение "editfax.lib;notes.lib;" в параметр "AdditionalDependencies" и нажмите Apply


После данных настроек вы можете собрать данное приложение


Если все сделано правильно, то вы увидите в консоли вывода следующий текст

Build started...

1>------ Build started: Project: intro, Configuration: Debug Win32 ------

1>intro.c

1>C:\HCL\notesapi\samples\basic\intro\intro.c(216,6): warning C4013: 'gets' undefined; assuming extern returning int

1>intro.vcxproj -> C:\Users\Ramazan Salpagarov\source\repos\intro\Debug\intro.exe

1>Done building project "intro.vcxproj".

========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

Попробуйте запустить приложение


Появится консоль, в котором будет сказано, что для правильной работы приложения необходимо через аргумент командной строки передать путь к базе данных

Добавить эти аргументы можно в настройках приложения (шаг 5) в разделе "Debugging" в параметре "Command arguments" и нажмите Apply

Вот теперь, после запуска приложения, все должно отработать штатно:

Надеюсь, у вас все получилось, а значит вы можете смело начинать экспериментировать с остальными примерами, которые идут в комплекте с Notes API и расширять возможности Notes.


Комментарии