Hello,

It works if I link (statically) to libxml2_a_dll.lib or libxml2_a.lib

what is the difference between the two libs?

for reference I compile libxml this way:
cscript.exe configure.js iconv=no ftp=no http=no compiler=msvc cruntime=/MT
 debug=yes  prefix="build_debug_static_mt" static=yes

I am not sure about the flag static=yes... it seems there is no effect, do
you confirm?

additionally I removed iconv (iconv=no), do you confirm that reading UTF-8
and UTF-16 will still work?

do you have any idea why the dynamic linking is not working?

Best regards,
Sylvain






On Sat, Apr 16, 2016 at 5:44 PM, Sylvain Pointeau <
sylvain.point...@gmail.com> wrote:

> Hello,
>
> it also fails when creating the FILE *f = (FILE*) xmlFileOpen(
> "C:\\test_data\\testxml.xml");
> or using the file descriptor:
>
> int fd = _open("C:\\test_data\\testxml.xml", _O_CREAT | _O_RDWR);
>
> xmlOutputBufferPtr output = xmlOutputBufferCreateFd(fd, NULL);
>
> Does anyone have an idea on where the issue could be?
>
> Best regards,
> Sylvain
>
> On Sat, Apr 16, 2016 at 11:59 AM, Sylvain Pointeau <
> sylvain.point...@gmail.com> wrote:
>
>> hello again,
>>
>> I investigated a bit more with my own compiled libxml2 in debug mode, the
>> stack trace is:
>>
>>   libxml2.dll!_invalid_parameter(const wchar_t * const expression, const
>> wchar_t * const function_name, const wchar_t * const file_name, const
>> unsigned int line_number, const unsigned int reserved) Line 91 C++
>>   libxml2.dll!_invalid_parameter_noinfo() Line 97 C++
>>   libxml2.dll!_write(int fh, const void * buffer, unsigned int size)
>> Line 48 C++
>> > libxml2.dll!__acrt_stdio_flush_nolock(_iobuf * public_stream) Line 152
>> C++
>>   libxml2.dll!_fflush_nolock(_iobuf * public_stream) Line 114 C++
>>   libxml2.dll!fflush(_iobuf * stream) Line 94 C++
>>   libxml2.dll!xmlFileFlush(void * context) Line 1104 C
>>   libxml2.dll!xmlOutputBufferClose(_xmlOutputBuffer * out) Line 2606 C
>>
>> Best regards,
>> Sylvain
>>
>>
>>
>> On Sat, Apr 16, 2016 at 11:25 AM, Sylvain Pointeau <
>> sylvain.point...@gmail.com> wrote:
>>
>>> Hello,
>>>
>>> using
>>> xmlOutputBufferPtr output = xmlOutputBufferCreateFilename("C
>>> :\\myfolder\testdata.xml", 0, 0);
>>> works...
>>>
>>> what can be wrong with xmlOutputBufferCreateFile?
>>>
>>> Best regards,
>>> Sylvain
>>>
>>> On Sat, Apr 16, 2016 at 10:23 AM, Sylvain Pointeau <
>>> sylvain.point...@gmail.com> wrote:
>>>
>>>> Hello,
>>>>
>>>> porting my program on windows, I noticed that xmlOutputBufferCreateFile
>>>> raised a message  I/O error : Bad file descriptor. Below is the sample
>>>> program that crashes for me:
>>>>
>>>> FILE *f = fopen("C:\\myfolder\testdata.xml", "w");
>>>>
>>>> xmlOutputBufferPtr output = xmlOutputBufferCreateFile(f, NULL);
>>>>
>>>> xmlOutputBufferWriteString(output, "WHY DO YOU CRASH?");
>>>>
>>>> xmlOutputBufferClose(output); <- at this moment it displays I/O error
>>>> : Bad file descriptor
>>>>
>>>> fclose(f);
>>>>
>>>> I linked on libs pre-compiled for win32,
>>>> I also tried with the lib I compiled myself, it even crashes in this
>>>> case (it does not display IO error)
>>>>
>>>> Please note that the parsing (SAX) runs well.
>>>>
>>>> Do you have any idea? is it a bug or something I am not doing well?
>>>>
>>>> Best regards,
>>>> Sylvain
>>>>
>>>
>>>
>>
>
_______________________________________________
xml mailing list, project page  http://xmlsoft.org/
xml@gnome.org
https://mail.gnome.org/mailman/listinfo/xml

Reply via email to