Hi all,

IMHO the fix for this should be minimally invasive, like in
the patch I've attached. I discovered I only needed to define
NOCRYPT before PdfDefinesPrivate.h is included in PdfEncrypt.cpp,
which is the only place where OpenSSL headers are included.
I wrote it so that no other include is, even potentially,
influenced by this. (Standard C and C++ headers don't include
windows.h AFAIK.) Please test this yourself as I can't permanently
install MinGW-w64 right now (I'd download it for today only,
I'm going to reinstall, IMHO that'd be waste of bandwidth).

Please review/test, and if you're a committer and the test went
to your liking, please commit to the public repository.

Best regards, mabri



----- Original Message -----
From: zyx <z...@litepdf.cz>
To: podofo-users@lists.sourceforge.net
Sent: Tuesday, 14 June 2016, 12:26 UTC
Subject: Re: [Podofo-users] Building error PoDoFo

On Sat, 2016-06-11 at 22:57 +0300, Ярослав Громов wrote:
> [  6%] Building CXX object
> src/CMakeFiles/podofo_shared.dir/base/PdfEncrypt.cpp.
> obj
> In file included from 
> D:/MGW64/mingw64/x86_64-w64-mingw32/include/windows.h:95:0
> ,
>                  from 
> D:/MGW64/mingw64/x86_64-w64-mingw32/include/winsock2.h:23,
> 
>                  from 
> D:\MGW32\podofo32\src\base\PdfCompilerCompatPrivate.h:35,
>                  from D:\MGW32\podofo32\src\base\PdfDefinesPrivate.h:9,
>                  from D:\MGW32\podofo32\src\base\PdfEncrypt.cpp:30:
> D:/MGW32/GnuWin32/include/openssl/ossl_typ.h:176:33: error: expected ')' 
> before
> numeric constant
>  typedef struct ocsp_response_st OCSP_RESPONSE;
>                                                   ^

    Hi,
there is a symbol clash between the wincrypt.h and openssl/ossl_typ.h,
both are defining OCSP_RESPONSE. The wincrypt.h has it as a #define,
while the openssl as a structure type name.

Try to define (globally) NOCRYPT, which will avoid inclusion of the
wincrypt.h from the windows.h. The 'globally' can be as a CFLAGS
option, like -DNOCRYPT, or any similar way.

Weird it didn't strike earlier.
    Bye,
    zyx

-- 

http://www.litePDF.cz                                 i...@litepdf.cz

https://ad.doubleclick.net/ddm/clk/305295220;132659582
_______________________________________________
Podofo-users mailing list
Podofo-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/podofo-users
Index: src/base/PdfEncrypt.cpp
===================================================================
--- src/base/PdfEncrypt.cpp	(revision 1767)
+++ src/base/PdfEncrypt.cpp	(working copy)
@@ -27,8 +27,18 @@
 
 #include "PdfDictionary.h"
 #include "PdfFilter.h"
-#include "PdfDefinesPrivate.h"
 
+#ifndef NOCRYPT
+#define PODOFO_NO_WINCRYPT // to be defined only when including OpenSSL headers
+#define NOCRYPT // where this is defined to stop windows.h including wincrypt.h
+#endif
+
+#include "PdfDefinesPrivate.h" // includes windows.h when building for Win32/64
+
+#ifdef PODOFO_NO_WINCRYPT
+#undef NOCRYPT // avoid influencing anything else
+#endif
+
 #include <stdlib.h>
 #include <string.h>
 #include <sstream>
------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity 
planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
_______________________________________________
Podofo-users mailing list
Podofo-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/podofo-users

Reply via email to