Как подлинковать статическую библиотеку ScApiBnd.lib
09.04.11 | Раздел публикации: Cognitive Technologies
	Посетитель: Здравствуйте,
	Как подлинковать статическую библиотеку ScApiBnd.lib?
	-----------------------------------------------------------------------------------------------------
	Консультант: Здравствуйте,
	Библиотека состоит из набора .dll-файлов, которые должны редистрибутироваться вместе с прикладной программой. Кроме того, для связывания библиотеки с прикладной программой, на этапе компиляции и сборки необходимы заголовочные файлы ScApi.h и ScApiBnd.h и статические библиотеки ScAli.lib и ScApiBnd.h.
	Возможно динамическое и статическое связывание прикладной программы с библиотекой Scanify API.
	
	Статическое связывание
	
	В случае статического связывания файл ScApi.dll и все остальные .dll библиотеки должны находиться в той же директории, что и .exe-файл программы. Включить ScApi.lib в проект MSVC или указать ScApi.lib на вкладке Link диалога Project Settings. В текст прикладной программы включить заголовочный файл библиотеки:
	#include "ScApi.h"
	
	Динамическое связывание
	
	В случае динамического связывания все .dll, относящиеся к библиотеке, должны находиться в одной директории.
	
	1 способ
	
	Подлинковать статическую библиотеку ScApiBnd.lib.
	Включить заголовочный файл
	#include "ScApiBnd.h"
	Вызвать функцию
	bool ScBindApi(const char *dll_path_name);
	Где dll_path_name — строка пути к ScApi.dll. Путь может быть либо абсолютным, либо относительным — относительно местоположения .exe-файла. Библиотека будет загружена, и указатели pSc… будут инициализированы функциями библиотеки.
	
	2 способ
	
	Подлинковать статическую библиотеку ScApiBnd.lib.
	Включить заголовочный файл
	#include "ScApiBnd.h"
	Вызвать
	HMODULE ScLoadLibrary(const char *dll_path_name);
	
	Где dll_path_name — строка пути к ScApi.dll. Путь может быть либо абсолютным, либо относительным — относительно местоположения .exe-файла. Функция загрузит библиотеку и вернет ее хэндл. Теперь можно вручную грузить функции через GetProcAddress(). Экспортируемые имена функций соответствуют соглашению __stdcall, т.е.
	_Имя-функции@число-байт-списка-аргументов
	Например
	_ScInitialize@4
	
	Чтобы получить список всех экспортируемых имен, можно воспользоваться командой:
	dumpbin /exports scapi.dll
	(утилита dumpbin входит в MSVC).



