You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@logging.apache.org by "Stephen Webb (Jira)" <lo...@logging.apache.org> on 2022/08/19 07:34:00 UTC

[jira] [Comment Edited] (LOGCXX-558) Prevent MSVC compilation warnings "needs to have dll-interface"

    [ https://issues.apache.org/jira/browse/LOGCXX-558?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17581703#comment-17581703 ] 

Stephen Webb edited comment on LOGCXX-558 at 8/19/22 7:33 AM:
--------------------------------------------------------------

Private data declared and used only in the one .cpp does not need a dll interface as it is definitely inaccessible by the client application.

AppenderSkeletonPrivate should be exported as it is accessible and may need to be contructed by the client. 


was (Author: swebb2066):
Private data declared and used only in the one .cpp does not need a dll inteerface as it is definitely inaccessible by the client application.

AppenderSkeletonPrivate should be exported as it is accessible and may need to be contructed by the client. 

> Prevent MSVC compilation warnings "needs to have dll-interface"
> ---------------------------------------------------------------
>
>                 Key: LOGCXX-558
>                 URL: https://issues.apache.org/jira/browse/LOGCXX-558
>             Project: Log4cxx
>          Issue Type: Improvement
>            Reporter: Stephen Webb
>            Priority: Minor
>             Fix For: 1.0.0
>
>
> The private data of classes do not prevent Microsoft compiler warning messages.
>  
> As the private data is inaccessible by client application it should be safe to ignore the warning. This can be done using a macro 
> ```
> #if _WIN32
> #define LOG4CXX_DECLARE_PRIVATE_STRUCT(T, V) \
> __pragma( warning( push ) ) \
> __pragma( warning( disable : 4251 ) ) \
>     struct T; std::unique_ptr<T> V; \
> __pragma( warning( pop ) )
> #else
> #define LOG4CXX_DECLARE_PRIVATE_STRUCT(T, V) struct T; std::unique_ptr<T> V;
> #endif /* WIN32 */
> ```



--
This message was sent by Atlassian Jira
(v8.20.10#820010)