Building Juce 1.10 with VC++ 6 pro


#1

I’ve got these problems, with VC6, Sp5 and Processor PAck installed

[code]Generating Code…
c:\Documents and Settings\cialz\Documenti\Tesi\JUCE\juce\src\juce_core\text\juce_LocalisedStrings.cpp(147) : warning C4702: unreachable code
Compiling…
juce_ThreadPool.cpp
juce_TimeSliceThread.cpp
juce_BlowFish.cpp
juce_MD5.cpp
juce_Primes.cpp
juce_RSAKey.cpp
juce_win32_ASIO.cpp
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1623) : warning C4201: nonstandard extension used : nameless struct/union
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1627) : warning C4201: nonstandard extension used : nameless struct/union
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1648) : warning C4201: nonstandard extension used : nameless struct/union
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1652) : warning C4201: nonstandard extension used : nameless struct/union
juce_win32_AudioCDReader.cpp
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1623) : warning C4201: nonstandard extension used : nameless struct/union
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1627) : warning C4201: nonstandard extension used : nameless struct/union
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1648) : warning C4201: nonstandard extension used : nameless struct/union
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1652) : warning C4201: nonstandard extension used : nameless struct/union
juce_win32_DirectSound.cpp
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1623) : warning C4201: nonstandard extension used : nameless struct/union
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1627) : warning C4201: nonstandard extension used : nameless struct/union
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1648) : warning C4201: nonstandard extension used : nameless struct/union
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1652) : warning C4201: nonstandard extension used : nameless struct/union
juce_win32_DynamicLibraryLoader.cpp
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1623) : warning C4201: nonstandard extension used : nameless struct/union
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1627) : warning C4201: nonstandard extension used : nameless struct/union
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1648) : warning C4201: nonstandard extension used : nameless struct/union
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1652) : warning C4201: nonstandard extension used : nameless struct/union
juce_win32_FileChooser.cpp
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1623) : warning C4201: nonstandard extension used : nameless struct/union
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1627) : warning C4201: nonstandard extension used : nameless struct/union
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1648) : warning C4201: nonstandard extension used : nameless struct/union
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1652) : warning C4201: nonstandard extension used : nameless struct/union
c:\Documents and Settings\cialz\Documenti\Tesi\JUCE\juce\build\win32\platform_specific_code…/…/…/src/juce_appframework/gui/gui_components/windows/…/lookandfeel/…/…/graphics/contexts/…/fonts/juce_Typeface.h(35) : fatal error C1001: INTERNAL C
OMPILER ERROR
(compiler file ‘msc1.cpp’, line 1794)
Please choose the Technical Support command on the Visual C++
Help menu, or open the Technical Support help file for more information
juce_win32_Files.cpp
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1623) : warning C4201: nonstandard extension used : nameless struct/union
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1627) : warning C4201: nonstandard extension used : nameless struct/union
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1648) : warning C4201: nonstandard extension used : nameless struct/union
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1652) : warning C4201: nonstandard extension used : nameless struct/union
juce_win32_Fonts.cpp
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1623) : warning C4201: nonstandard extension used : nameless struct/union
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1627) : warning C4201: nonstandard extension used : nameless struct/union
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1648) : warning C4201: nonstandard extension used : nameless struct/union
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1652) : warning C4201: nonstandard extension used : nameless struct/union
juce_win32_Messaging.cpp
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1623) : warning C4201: nonstandard extension used : nameless struct/union
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1627) : warning C4201: nonstandard extension used : nameless struct/union
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1648) : warning C4201: nonstandard extension used : nameless struct/union
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1652) : warning C4201: nonstandard extension used : nameless struct/union
juce_win32_Midi.cpp
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1623) : warning C4201: nonstandard extension used : nameless struct/union
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1627) : warning C4201: nonstandard extension used : nameless struct/union
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1648) : warning C4201: nonstandard extension used : nameless struct/union
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1652) : warning C4201: nonstandard extension used : nameless struct/union
juce_win32_Misc.cpp
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1623) : warning C4201: nonstandard extension used : nameless struct/union
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1627) : warning C4201: nonstandard extension used : nameless struct/union
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1648) : warning C4201: nonstandard extension used : nameless struct/union
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1652) : warning C4201: nonstandard extension used : nameless struct/union
c:\Documents and Settings\cialz\Documenti\Tesi\JUCE\juce\build\win32\platform_specific_code…/…/…/src/juce_appframework/gui/gui_components/windows/…/lookandfeel/…/…/graphics/contexts/…/fonts/juce_Typeface.h(35) : fatal error C1001: INTERNAL C
OMPILER ERROR
(compiler file ‘msc1.cpp’, line 1794)
Please choose the Technical Support command on the Visual C++
Help menu, or open the Technical Support help file for more information
juce_win32_Network.cpp
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1623) : warning C4201: nonstandard extension used : nameless struct/union
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1627) : warning C4201: nonstandard extension used : nameless struct/union
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1648) : warning C4201: nonstandard extension used : nameless struct/union
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1652) : warning C4201: nonstandard extension used : nameless struct/union
juce_win32_PlatformUtils.cpp
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1623) : warning C4201: nonstandard extension used : nameless struct/union
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1627) : warning C4201: nonstandard extension used : nameless struct/union
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1648) : warning C4201: nonstandard extension used : nameless struct/union
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1652) : warning C4201: nonstandard extension used : nameless struct/union
juce_win32_SystemStats.cpp
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1623) : warning C4201: nonstandard extension used : nameless struct/union
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1627) : warning C4201: nonstandard extension used : nameless struct/union
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1648) : warning C4201: nonstandard extension used : nameless struct/union
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1652) : warning C4201: nonstandard extension used : nameless struct/union
juce_win32_Threads.cpp
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1623) : warning C4201: nonstandard extension used : nameless struct/union
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1627) : warning C4201: nonstandard extension used : nameless struct/union
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1648) : warning C4201: nonstandard extension used : nameless struct/union
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1652) : warning C4201: nonstandard extension used : nameless struct/union
Generating Code…
Compiling…
juce_win32_Windowing.cpp
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1623) : warning C4201: nonstandard extension used : nameless struct/union
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1627) : warning C4201: nonstandard extension used : nameless struct/union
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1648) : warning C4201: nonstandard extension used : nameless struct/union
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\mmsystem.h(1652) : warning C4201: nonstandard extension used : nameless struct/union
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\multimon.h(73) : error C2065: ‘HMONITOR’ : undeclared identifier
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\multimon.h(73) : error C2275: ‘HDC’ : illegal use of this type as an expression
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\windef.h(239) : see declaration of 'HDC’
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\multimon.h(73) : error C2275: ‘LPRECT’ : illegal use of this type as an expression
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\windef.h(292) : see declaration of 'LPRECT’
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\multimon.h(73) : error C2275: ‘LPARAM’ : illegal use of this type as an expression
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\windef.h(171) : see declaration of 'LPARAM’
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\multimon.h(73) : error C2165: ‘left-side modifier’ : cannot modify pointers to data
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\multimon.h(73) : error C2071: ‘MONITORENUMPROC’ : illegal storage class
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\multimon.h(340) : error C2143: syntax error : missing ‘;’ before '__stdcall’
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\multimon.h(341) : error C2143: syntax error : missing ‘;’ before '__stdcall’
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\multimon.h(342) : error C2143: syntax error : missing ‘;’ before '__stdcall’
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\multimon.h(343) : error C2275: ‘LPMONITORINFO’ : illegal use of this type as an expression
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\multimon.h(54) : see declaration of 'LPMONITORINFO’
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\multimon.h(343) : warning C4229: anachronism used : modifiers on data are ignored
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\multimon.h(343) : error C2078: too many initializers
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\multimon.h(343) : error C2275: ‘LPMONITORINFO’ : illegal use of this type as an expression
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\multimon.h(54) : see declaration of 'LPMONITORINFO’
c:\Documents and Settings\cialz\Documenti\Tesi\JUCE\juce\build\win32\platform_specific_code\juce_win32_Windowing.cpp(440) : error C2065: ‘WS_EX_LAYERED’ : undeclared identifier
c:\Documents and Settings\cialz\Documenti\Tesi\JUCE\juce\build\win32\platform_specific_code\juce_win32_Windowing.cpp(1663) : error C2275: ‘HDC’ : illegal use of this type as an expression
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\windef.h(239) : see declaration of 'HDC’
c:\Documents and Settings\cialz\Documenti\Tesi\JUCE\juce\build\win32\platform_specific_code\juce_win32_Windowing.cpp(1663) : error C2275: ‘LPRECT’ : illegal use of this type as an expression
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\windef.h(292) : see declaration of 'LPRECT’
c:\Documents and Settings\cialz\Documenti\Tesi\JUCE\juce\build\win32\platform_specific_code\juce_win32_Windowing.cpp(1663) : error C2146: syntax error : missing ‘)’ before identifier 'r’
c:\Documents and Settings\cialz\Documenti\Tesi\JUCE\juce\build\win32\platform_specific_code\juce_win32_Windowing.cpp(1663) : warning C4229: anachronism used : modifiers on data are ignored
c:\Documents and Settings\cialz\Documenti\Tesi\JUCE\juce\build\win32\platform_specific_code\juce_win32_Windowing.cpp(1663) : error C2078: too many initializers
c:\Documents and Settings\cialz\Documenti\Tesi\JUCE\juce\build\win32\platform_specific_code\juce_win32_Windowing.cpp(1663) : error C2275: ‘LPRECT’ : illegal use of this type as an expression
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\windef.h(292) : see declaration of 'LPRECT’
c:\Documents and Settings\cialz\Documenti\Tesi\JUCE\juce\build\win32\platform_specific_code\juce_win32_Windowing.cpp(1663) : error C2059: syntax error : ')'
c:\Documents and Settings\cialz\Documenti\Tesi\JUCE\juce\build\win32\platform_specific_code\juce_win32_Windowing.cpp(1664) : error C2143: syntax error : missing ‘;’ before '{'
c:\Documents and Settings\cialz\Documenti\Tesi\JUCE\juce\build\win32\platform_specific_code\juce_win32_Windowing.cpp(1664) : error C2447: missing function header (old-style formal list?)
Generating Code…
Error executing cl.exe.

jucelib_unicode.lib - 23 error(s), 63 warning(s)
[/code]

Could someone help me?
thanx

best regards


#2

In my WinUser.h (which is probably auto-included by windows.h, etc. then by juce) I have following:

Probably for HMONITOR is the same, basically you are either having old PlatformSDK (you can download the latest one off the Microsoft), or you are having your _WIN32_WINNT version to be 0x0400. It should be at least 0x0500 (that corresponds to NT 5.0 which is 2000/XP).


#3

I’ve downloaded and installed the latest Platform SDK.
Now I have to set the new directories point to the new SDK?

Also the BIN or only LIB and INCLUDE?

thanx


#4

Now with platform sdk I get these errors, less than before.
I’ve chenged the directories INCLUDES and LIB, not the exec ones

[code]Generating Code…
c:\Documents and Settings\cialz\Documenti\Tesi\JUCE\juce\src\juce_core\text\juce_LocalisedStrings.cpp(147) : warning C4702: unreachable code
Compiling…
juce_ThreadPool.cpp
juce_TimeSliceThread.cpp
juce_BlowFish.cpp
juce_MD5.cpp
juce_Primes.cpp
juce_RSAKey.cpp
juce_win32_ASIO.cpp
juce_win32_AudioCDReader.cpp
juce_win32_DirectSound.cpp
juce_win32_DynamicLibraryLoader.cpp
juce_win32_FileChooser.cpp
c:\Documents and Settings\cialz\Documenti\Tesi\JUCE\juce\build\win32\platform_specific_code…/…/…/src/juce_appframework/gui/gui_components/windows/…/lookandfeel/…/…/graphics/contexts/…/fonts/juce_Typeface.h(35) : fatal error C1001: INTERNAL C
OMPILER ERROR
(compiler file ‘msc1.cpp’, line 1794)
Please choose the Technical Support command on the Visual C++
Help menu, or open the Technical Support help file for more information
juce_win32_Files.cpp
juce_win32_Fonts.cpp
juce_win32_Messaging.cpp
juce_win32_Midi.cpp
juce_win32_Misc.cpp
c:\Documents and Settings\cialz\Documenti\Tesi\JUCE\juce\build\win32\platform_specific_code…/…/…/src/juce_appframework/gui/gui_components/windows/…/lookandfeel/…/…/graphics/contexts/…/fonts/juce_Typeface.h(35) : fatal error C1001: INTERNAL C
OMPILER ERROR
(compiler file ‘msc1.cpp’, line 1794)
Please choose the Technical Support command on the Visual C++
Help menu, or open the Technical Support help file for more information
juce_win32_Network.cpp
juce_win32_PlatformUtils.cpp
juce_win32_SystemStats.cpp
juce_win32_Threads.cpp
Generating Code…
Compiling…
juce_win32_Windowing.cpp
Generating Code…
Error executing cl.exe.

jucelib_unicode.lib - 2 error(s), 1 warning(s)
[/code]


#5

Googling through net did brought something:

http://coding.derkeiler.com/Archive/C_CPP/comp.lang.cpp/2003-12/0427.html

(I was looking for [“template class” “‘msc1.cpp’, line 1794”] - without the square brackets).

First, I’m not really C++ advanced (templates, etc.), but here is what you can try (I cannot, as I have already VSNET 2003 installed):

find the file called

juce_ReferenceCountedObject.h, go to line 154, the line is written like this:

inline ReferenceCountedObjectPtr (const eferenceCountedObjectPtr& other) throw()

Please add one “int dummy = 0”, as given in the workaround in the page, like this:

inline ReferenceCountedObjectPtr (const eferenceCountedObjectPtr& other, int dummy = 0) throw()

Hope it helps :wink:


#6

I’ve lauched a find of msc1.cpp but in my Platform SDK folder there isn’t.

Where could I find msc1.cpp?


#7

It’s an internal compiler error: msc1.cpp must be one of the source files for their compiler - very unlikely to be on your hard disk, unless you work for Microsoft’s compiler team!

Have you got all the latest patches for VC and the processor pack? And check the order of the library/header/executable paths.

Also try completely cleaning the project and trying again - sometimes the compiler can corrupt an intermediate file and that’ll make it crash later on.


#8

Hi Jules,
I have MSVC++6 with SP5, Processor Pack, the latest Platform SDK 2003

I placed the new Platform SDK include and lib paths in the Option->Directories of Visual Studio 6.


#9

Ah! I just remembered having the same bug ages ago… I think it’s because the compiler can’t handle long path names and that makes it crash. Try putting the code in a root directory instead.


#10

It seems a huge works, I’ve to edit all your includes!

Are you sure is this the problem?
It may be, since it is a very long include:




#11

I renamed juce_ReferenceCountedObject.h with juce_RefCountedObj.h.

Now the errors are with other .H
It is all recorsive. Doead exist a way to avoid rename all files or it is a bug of MSVC!?!?


#12

eh? why are you renaming things?? Just move the whole source tree - it’s only because you’ve put it in some deep directory that the names are so long.

I build with it all in c:\code\juce and that works fine.


#13

Ok, I’ll try

bye


#14

YYYYEEESSS

It works, thanx Jules.

But, what has changed moving down to root all the juce stuff?

bye

cialz


#15

Oy, that was the error the whole time? I’ve been compiling it in a virtual machine for the past couple months because of VC6 having a problem with idiotically long filenames (too many …'s), how… not suprising. My directory structure used to be g:\Programming\C++\API’s\Juce\juce_1_11\juce\etc… Much, so much thanks.

To reiterate, the error was because some of the header files were refrenced from other headers, which were referenced from other headers, too many layers deep, that caused a whole ton of …\ directory links so it went up the tree, down the tree, up the tree, etc… multiple times. Apparently the compilier does not know to just remove a … all the way up to the previous backslash before trying to stick it into a file access function in windows, which, mind you, only has a char buffer of 256 (unicode-)bytes (255+\0). I made a hardlink from my directory to a new drive made just for it (drive doesn’t actually exist, just a hardlink to the directory, I love NTFS…) so it is now R:\juce\etc…

May I recommend a sticky?

Question: Also curious, have you thought about abstracting the components, or making a subcomponent that can be placed in other things, such as an opengl window. Imagine an entire app existing inside an opengl window on Windows or Linux. No move flickers, real-time effects, basically just emulating the Mac10.5 Tiger setup to exist in other OS’s, like Windows and Linux. Yes it would be constrained to the opengl window, but it could still be placed onto the main desktop or main desktop windows as well. The problem I see with this, either need to create a whole new host of components that will solely exist for opengl/desktop, which ends up being far too much hassle, or converting all current components and functions to be abstracted a bit more, allowing them to be heavily buffered (wouldn’t would to call a Paint(graphics &g) every frame after all) and setup a flag to indicate it has a paint to do, erby updating the buffer. The latter method would be the most simple as you could just add a simple flag in the base component class that is set when repaint is called, acting normally on a desktop, but the opengl ‘desktop’ would update the buffer when it sees that in a frame, mabye a message to the opengl desktop if it exists, and possibly adding one more function, a Paint3D() or something, with an openGL area passed through with details about positioning and such, allowing it to use native opengl calls to allow real-time drawing with all effects as needbe. A side effect would be either making a whole ton of defines for when opengl is not compilied in, or making opengl a necessity for compiling…

Sorry, just random thoughts… Perhaps I should make another thread for that?


#16

I’ve added a note about this to the build instructions now.

Have to admit I’ve absolutely no idea what you’re talking about. I’m already looking at possibly using opengl to accelerate the rendering, if that’s what you mean, but it’d be internal and won’t affect juce apps.
[/quote]


#17