[
https://issues.apache.org/jira/browse/XERCESC-2119?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16393837#comment-16393837
]
Roger Leigh commented on XERCESC-2119:
--------------------------------------
I think the XERCES_TEMPLATE_EXTERN is something which might be unnecessary.
It's apparently needed with VS2010 and earlier, but later VC++ versions should
work with export. Everything else seems to. I kept it in for now since it
seems harmless; it really depends upon how far back our VC++ support should go.
[I currently only use VS2017/15/13 myself, with VS2015 for CI testing]
> warning C4251: 'xercesc_3_2::TranscodeToStr::fString': class
> 'xercesc_3_2::ArrayJanitor<XMLByte>' needs to have dll-interface to be used
> by clients of class 'xercesc_3_2::TranscodeToStr'
> ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: XERCESC-2119
> URL: https://issues.apache.org/jira/browse/XERCESC-2119
> Project: Xerces-C++
> Issue Type: Bug
> Components: Utilities
> Affects Versions: 3.2.0
> Environment: windows
> Reporter: Mathieu Champlon
> Assignee: Roger Leigh
> Priority: Major
> Fix For: 3.2.1
>
> Attachments: 0001-Explicitly-export-ArrayJanitor-templates.patch,
> dll_interface.patch
>
>
> Upgrading from xerces 3.1.2 to 3.2.0 on windows introduces a few of
> {noformat}
> (...)\include\xercesc/util/TransService.hpp(559): error C2220: warning
> treated as error - no 'object' file generated
> (...)\include\xercesc/util/TransService.hpp(559): warning C4251:
> 'xercesc_3_2::TranscodeToStr::fString': class
> 'xercesc_3_2::ArrayJanitor<XMLByte>' needs to have dll-interface to be used
> by clients of class 'xercesc_3_2::TranscodeToStr'
> (...)\include\xercesc/util/TransService.hpp(559): note: see declaration of
> 'xercesc_3_2::ArrayJanitor<XMLByte>'
> (...)\include\xercesc/util/TransService.hpp(641): warning C4251:
> 'xercesc_3_2::TranscodeFromStr::fString': class
> 'xercesc_3_2::ArrayJanitor<XMLCh>' needs to have dll-interface to be used by
> clients of class 'xercesc_3_2::TranscodeFromStr'
> (...)\include\xercesc/util/TransService.hpp(641): note: see declaration of
> 'xercesc_3_2::ArrayJanitor<XMLCh>'
> {noformat}
> As pragma deactivating C4251 is frown upon on the project I work, I ended up
> exporting the types, see attached patch.
> Note that this was also mentioned in XERCESC-1974.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]