开发者

poppack.h wrong?

i got a Project to go on coding, so its not my code till now and i can´t explain the following warning message in VS2008 compiling my code:

Warnung 2 warning C4161: #pragma pack(pop...): Mehr pop- als push-Vorgänge c:\programme\microsoft sdks\windows\v6.0a\include\poppack.h 29

/*++

Copyright (c) Microsoft Corporation.  All rights reserved.

Module Name:

    poppack.h

Abstract:

    This file turns packing of structures off.  (That is, it e开发者_JAVA技巧nables
    automatic alignment of structure fields.)  An include file is needed
    because various compilers do this in different ways.

    poppack.h is the complement to pshpack?.h.  An inclusion of poppack.h
    MUST ALWAYS be preceded by an inclusion of one of pshpack?.h, in one-to-one
    correspondence.

    For Microsoft compatible compilers, this file uses the pop option
    to the pack pragma so that it can restore the previous saved by the
    pshpack?.h include file.

--*/

#if ! (defined(lint) || defined(RC_INVOKED))
#if ( _MSC_VER >= 800 && !defined(_M_I86)) || defined(_PUSHPOP_SUPPORTED)
#pragma warning(disable:4103)
#if !(defined( MIDL_PASS )) || defined( __midl )
#pragma pack(pop)
#else
#pragma pack()
#endif
#else
#pragma pack()
#endif
#endif // ! (defined(lint) || defined(RC_INVOKED))

Can you explain why? Isnt this a Microsoft File?


You need to make sure that you match every

#include <pshpack.h>

with a use of

#include <poppack.h>

If my German is serving me right, it's complaining about a mis-match.


It seems that you must include pshpack.h at the beginning of your code, and include poppack.h at the end.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜