Building Juce 1.30 on VC++6


#1

Hi to all,

I’m getting this compile error inside AudioFilterBase::copyXmlToBinary method:

c:\juce\projects\XVolver VST\src\wrapper\juce_AudioFilterBase.cpp(144) : error C2440: ‘type cast’ : cannot convert from ‘class juce::MemoryBlock’ to 'char *'
No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called

Here it is the mad row:

void AudioFilterBase::copyXmlToBinary (const XmlElement& xml,
                                       MemoryBlock& destData)
{
    const String xmlString (xml.createDocument (String::empty, true, false));
    const int stringLength = xmlString.length();

    destData.setSize (stringLength + 10);

    char* d = (char*) destData; 
    *(uint32*) d = swapIfBigEndian ((const uint32) magicXmlNumber);
    *(uint32*) (d + 4) = swapIfBigEndian ((const uint32) stringLength);

    xmlString.copyToBuffer (d + 8, stringLength);
}

#2

oh, it’s a VC6 template bug - just change it to (char*) destData.getData() and it’ll be fine.


#3

very thanx Jule


#4