Я использую LibTiff v4.0.3.Исключение исключения TIFFOpenW Libtiff
У меня было это прекрасно работает в многобайтовых, но когда я пытаюсь работать с Unicode, я получаю исключение во время выполнения.
Я могу вынести эту проблему вплоть до одной строки:
#include "tiffio.h"
int _tmain(int argc, _TCHAR* argv[])
{
TIFF* tif = TIFFOpenW(L"D:\\Myfile", "r");
}
И это будет работать отлично: TIFF* tif = TIFFOpen("D:\\Myfile", "r");
Я не могу получить точный код исключения, но стек код выглядит следующим образом :
msvcr110.dll!__crt_debugger_hook(int _Reserved) Line 60 C
msvcr110.dll!_call_reportfault(int nDbgHookCode, unsigned long dwExceptionCode, unsigned long dwExceptionFlags) Line 155 C++
msvcr110.dll!_invoke_watson(const wchar_t * pszExpression, const wchar_t * pszFunction, const wchar_t * pszFile, unsigned int nLine, unsigned __int64 pReserved) Line 139 C++
msvcr110.dll!_invalid_parameter(const wchar_t * pszExpression, const wchar_t * pszFunction, const wchar_t * pszFile, unsigned int nLine, unsigned __int64 pReserved) Line 85 C++
msvcr110.dll!_invalid_parameter_noinfo() Line 97 C++
msvcr110.dll!_read(int fh, void * buf, unsigned int cnt) Line 84 C
ConsoleApplication1.exe!TIFFFdOpen() C
ConsoleApplication1.exe!TIFFClientOpen() C
ConsoleApplication1.exe!TIFFFdOpen() C
ConsoleApplication1.exe!TIFFOpenW() C
ConsoleApplication1.exe!wmain(int argc, wchar_t * * argv) Line 21 C++
ConsoleApplication1.exe!__tmainCRTStartup() Line 533 C
ConsoleApplication1.exe!wmainCRTStartup() Line 377 C
kernel32.dll!BaseThreadInitThunk() Unknown
ntdll.dll!RtlUserThreadStart() Unknown
Я попытался с помощью @err
и @err,hr
, но они показывают, что не было никакой ошибки.
Как я могу получить версию Unicode? Нужно ли мне компилировать библиотеку по-разному?
(я проверил и нет никакой проверки для препроцессора переменной UNICODE
в LibTIFF ....)