AviSynth / AviSynthPlus

AviSynth with improvements
http://avs-plus.net
981 stars 76 forks source link

Fix added defined GCC #407

Open Jamaika1 opened 1 month ago

pinterf commented 1 month ago

Two things:

1.) You can fix your pull request (in order not to include junk commits which fix a wrong fix) by reordering/reseting the commit history and then force push to your patch-6 branch.

2.) Why did you put that #ifndef GCC line ? Doing so breaks my existing gcc mingw build process. So I won't merge this commit in this form.

Other comments: I noticed that the Vfw.h version for GCC is using __CRT__NO_INLINE define. The headers are here: MinGW version: c:\msys64\mingw64\include\ MSVC version: c:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\

However __CRT__NO_INLINE is not used in the Vfw.h from Microsoft Windows SDK. Unlike GCC MinGW, where it guards the definition of many things (such as ICDecompressEx).

The define __CRT__NO_INLINE is not defined by default, but somehow you managed to define it.

When do you set for your gcc build?

Jamaika1 commented 1 month ago

Test GCC 11.5.0 & 15.0.0 c++17

avi_source.cpp:304:1: error: redefinition of 'LRESULT ICDecompressEx(HIC, DWORD, LPBITMAPINFOHEADER, LPVOID, INT, INT, INT, INT, LPBITMAPINFOHEADER, LPVOID, INT, INT, INT, INT)'
  304 | ICDecompressEx(HIC hic,DWORD dwFlags,LPBITMAPINFOHEADER lpbiSrc,LPVOID lpSrc,INT xSrc,INT ySrc,INT dxSrc,INT dySrc,LPBITMAPINFOHEADER lpbiDst,LPVOID lpDst,INT xDst,INT yDst,INT dxDst,INT dyDst)
      | ^~~~~~~~~~~~~~
In file included from DubSource.h:22,
                 from AudioSource.h:21,
                 from avi_source.cpp:40:
c:\gcc1150\x86_64-w64-mingw32\include\vfw.h:414:31: note: 'LRESULT ICDecompressEx(HIC, DWORD, LPBITMAPINFOHEADER, LPVOID, int, int, int, int, LPBITMAPINFOHEADER, LPVOID, int, int, int, int)' previously defined here
  414 |   __CRT_INLINE LRESULT WINAPI ICDecompressEx(HIC hic,DWORD dwFlags,LPBITMAPINFOHEADER lpbiSrc,LPVOID lpSrc,int xSrc,int ySrc,int dxSrc,int dySrc,LPBITMAPINFOHEADER lpbiDst,LPVOID lpDst,int xDst,int yDst,int dxDst,int dyDst) {
      |                               ^~~~~~~~~~~~~~
avi_source.cpp:324:1: error: redefinition of 'LRESULT ICDecompressExBegin(HIC, DWORD, LPBITMAPINFOHEADER, LPVOID, INT, INT, INT, INT, LPBITMAPINFOHEADER, LPVOID, INT, INT, INT, INT)'
  324 | ICDecompressExBegin(HIC hic,DWORD dwFlags,LPBITMAPINFOHEADER lpbiSrc,LPVOID lpSrc,INT xSrc,INT ySrc,INT dxSrc,INT dySrc,LPBITMAPINFOHEADER lpbiDst,LPVOID lpDst,INT xDst,INT yDst,INT dxDst,INT dyDst)
      | ^~~~~~~~~~~~~~~~~~~
In file included from DubSource.h:22,
                 from AudioSource.h:21,
                 from avi_source.cpp:40:
c:\gcc1150\x86_64-w64-mingw32\include\vfw.h:432:31: note: 'LRESULT ICDecompressExBegin(HIC, DWORD, LPBITMAPINFOHEADER, LPVOID, int, int, int, int, LPBITMAPINFOHEADER, LPVOID, int, int, int, int)' previously defined here
  432 |   __CRT_INLINE LRESULT WINAPI ICDecompressExBegin(HIC hic,DWORD dwFlags,LPBITMAPINFOHEADER lpbiSrc,LPVOID lpSrc,int xSrc,int ySrc,int dxSrc,int dySrc,LPBITMAPINFOHEADER lpbiDst,LPVOID lpDst,int xDst,int yDst,int dxDst,int dyDst) {
      |                               ^~~~~~~~~~~~~~~~~~~