Здесь я описываю шаги, которые я выполнил, чтобы попытаться построить следующий проект C++:
http://sourceforge.net/projects/twain-samples/files/TWAIN%202%20Sample%20Application/
На Microsoft Windows 7 - 64 бит. Моя конечная цель — сохранить функциональность и добавить параметры командной строки, чтобы я мог запускать его в пакетном файле, потому что сейчас это программное обеспечение на основе меню.
Установка сообщества Qt Creator
- Version 3.5.0 (based on Qt 5.5.0 (MSVC 2013, 32 bit)
- Kits available:
- Desktop Qt 5.4.2 MSVC2013 64bit2
- Рабочий стол Qt 5.5.0 MSVC2010 32bit
- Рабочий стол Qt 5.5.0 MSVC2012 32bit
- Рабочий стол Qt 5.5.0 MSVC2013 32bit
- Рабочий стол Qt 5.5.0 MSVC2013 64bit
Загрузка библиотеки Freeimage (двоичный файл)
Установка библиотеки Freeimage
- Uncompress FreeImage3170Win32Win64.zip
- откройте папку FreeImage\Dist\x64
- Скопируйте freeimage.dll в папку C:\Windows\System32.
Загрузка и распаковка проекта Twain
- Download Twain_App_sample.source.zip in http://sourceforge.net/projects/twain-samples/files/TWAIN%202%20Sample%20Application/
- Uncompress the archive Twain_App_sample.source.zip, that gives the 2 following folders:
- Twain_App_sample01
- общие
Добавление заголовочного файла и библиотеки Freeimage в проект
- copy Freeimage.h in the common folder
- создайте папку lib в папке Twain_App_sample01\src
- скопируйте freeimage.lib в папку Twain_App_sample01\src\lib
Настройка проекта в Qt Creator
- launch Qt Creator
- в Qt нажмите Открыть проект.
- выберите файл src.pro в папке Twain_App_sample01\src
- в Настроить проект выберите комплект Desktop Qt 5.5.0 MSVC2013 64bit.
- нажмите кнопку Настроить проект.
Создайте и используйте функцию преобразования строк
в исходный файл DSMInterface.cpp добавьте эту функцию:
wchar_t *convertCharArrayToLPCWSTR(const char* charArray) { wchar_t* wString=new wchar_t[4096]; MultiByteToWideChar(CP_ACP, 0, charArray, -1, wString, 4096); return wString; }
в DSMInterface.cpp, функция LoadDSMLib, заменить
if((gpDSM=LOADLIBRARY(_pszLibName)) != 0)
с
if((gpDSM=LOADLIBRARY(convertCharArrayToLPCWSTR(_pszLibName))) != 0)
Подборка — часть 1
- Now i get a message from the linker:
DSMInterface.obj:-1: error : LNK2019: unresolved external symbol "int __cdecl VerifyEmbeddedSignature(wchar_t const *)" (?VerifyEmbeddedSignature@@YAHPEB_W@Z) referenced in function "bool __cdecl LoadDSMLib(char *)" (?LoadDSMLib@@YA_NPEAD@Z)
Я добавил в проект файл Twain_App_sample01\src\VerifySignature.cpp, и теперь это сообщение исчезло (спасибо за это Итаю Грудеву)
- Compilation - part 2
- I have another message now
..\src\VerifySignature.cpp(13) : fatal error C1083: Cannot open include file: 'afx.h': No such file or directory
You need to include the VerifySignature.cpp source file. Depending on your OS you may need to comment out the following variable WinTrustData.dwUIContext = 0;
- person Itay Grudev   schedule 09.10.2015