4 Replies Latest reply: Jul 8, 2010 3:04 AM by nope0000 RSS

    porting from win to mac / expected constructor destructor or type conversion before

    nope0000 Community Member

      I am porting a plugin that works well with CS3/4/5 on Windows to CS3 on Mac.

       

      I am able to compile the SDK samples with XCode. My plugin also compiles with XCode if i remove one cpp file from the project. If i try to compile it with the file (actioncomponent.cpp) compiling fails with the error:

       

      expected constructor destructor or type conversion before .....

       

      I tried to trace the error by commenting out ceveral includes and functions in that file. The error then point's to another place in the file itself or in one included in it, the error is the same.

       

      I generated the project with dollyx, added my .fr, compiled it, added the .fr.rsrc, added source files and built it.

       

      Since this is my first Indesign plugin for Mac I am sure that i miss something general.

       

      Any suggestions?

        • 1. Re: porting from win to mac / expected constructor destructor or type conversion before
          nope0000 Community Member

          The error is thrown only if I include IActiveContext.h in my actioncomponent.cpp. The SDK sample BasicMenu, what is in this part more or less the same as my code is compiling and working.

           

          Any help would be great.

          • 2. Re: porting from win to mac / expected constructor destructor or type conversion before
            nope0000 Community Member

            I checked my code against every SDK sample where context/session is used and cannot find any difference. I also took a sample project, included my sources what resulted in the same error messages.

             

            One of them:

             

            Checking Dependencies

            CompileC build/myPluginName.build/Default/Release.build/Objects-normal/ppc/myPluginNameActionCompo nent.o /Volumes/daten/adobe_indesign_cs3_products_sdk_504mac/build/mac/prj/../../../source/sdksa mples/myPluginName/myPluginNameActionComponent.cpp normal ppc c++ com.apple.compilers.gcc.4_0
                cd /Volumes/daten/adobe_indesign_cs3_products_sdk_504mac/build/mac/prj
                /Developer/usr/bin/gcc-4.0 -x c++ -arch ppc -pipe -Wno-trigraphs -fno-exceptions -fpascal-strings -fasm-blocks -O3 -Werror -Wreturn-type -Wunused-value -DMACINTOSH -DBIB_NO_THROW -fmessage-length=0 -mtune=G5 -fvisibility=hidden -fvisibility-inlines-hidden -fno-threadsafe-statics -Wno-deprecated-declarations -mmacosx-version-min=10.4 -gdwarf-2 -I/Volumes/daten/adobe_indesign_cs3_products_sdk_504mac/build/mac/prj/build/myPluginName. build/Default/Release.build/myPluginName.hmap -Wno-deprecated -F/Volumes/daten/adobe_indesign_cs3_products_sdk_504mac/build/mac/prj/../release/sdk -F../../../build/mac/release/packagefolder/contents/macos -F../../../build/mac/release/packagefolder/contents/Frameworks -I/Volumes/daten/adobe_indesign_cs3_products_sdk_504mac/build/mac/prj/../release/sdk/incl ude -I/Developer/SDKs/MacOSX10.4u.sdk/Developer/Headers/FlatCarbon -I../../../external/adobesourcelibrary/third_party/boost_tp/boost -I../../../external/afl/includes -I../../../source/precomp/common -I../../../source/precomp/msvc -I../../../source/public/includes -I../../../source/public/interfaces/architecture -I../../../source/private/includes/architecture -I../../../source/private/interfaces/architecture -I../../../source/public/includes/utils -I../../../source/public/interfaces/utils -I../../../source/precomp/msvc -I../../../source/public/interfaces/xmedia -I../../../source/public/interfaces/ui -I../../../source/public/interfaces/tables -I../../../source/public/interfaces/text -I../../../source/public/interfaces/graphics -I../../../source/public/components/widgetbin/includes -I../../../source/public/interfaces/workgroup -I../../../source/public/interfaces/interactive -I../../../source/public/interfaces/interactive/ui -I../../../source/public/interfaces/colormgmt -I../../../source/public/interfaces/utils -I../../../source/public/interfaces/incopy -I../../../source/public/interfaces/layout -I../../../source/public/interfaces/architecture -I../../../source/public/interfaces/cjk -I../../../source/precomp/common -I../../../source/public/includes -I../../../source/public/components/publiclib/plugins -I../../../source/public/components/publiclib/files -I../../../source/public/components/publiclib/objectmodel -I../../../external/boost -I../../../source/sdksamples/common -I../../../external/afl/includes -I../../../source/sdksamples/myPluginName -I/Volumes/daten/adobe_indesign_cs3_products_sdk_504mac/build/mac/prj/build/myPluginName. build/Default/Release.build/DerivedSources -isysroot /Developer/SDKs/MacOSX10.4u.sdk -include build/SharedPrecompiledHeaders/Release/PluginPrefix-hkopdumatdlxfjbkpugezhwgmujv/PluginPr efix.pch -c /Volumes/daten/adobe_indesign_cs3_products_sdk_504mac/build/mac/prj/../../../source/sdksa mples/myPluginName/myPluginNameActionComponent.cpp -o /Volumes/daten/adobe_indesign_cs3_products_sdk_504mac/build/mac/prj/build/myPluginName.bu ild/Default/Release.build/Objects-normal/ppc/myPluginNameActionComponent.o
            ../../../source/public/includes/KeyValuePair.h:36: error: expected constructor, destructor, or type conversion before 'template'
            ../../../source/public/includes/KeyValuePair.h:82: error: expected ',' or '...' before '<' token
            ../../../source/public/includes/KeyValuePair.h:82: error: ISO C++ forbids declaration of 'KeyValuePair' with no type
            ../../../source/public/includes/KeyValuePair.h:82: error: 'bool operator==(int)' must have an argument of class or enumerated type
            ../../../source/public/includes/KeyValuePair.h:82: error: 'bool operator==(int)' must take exactly two arguments
            ../../../source/public/includes/KeyValuePair.h: In function 'bool operator==(int)':
            ../../../source/public/includes/KeyValuePair.h:84: error: '__x' was not declared in this scope
            ../../../source/public/includes/KeyValuePair.h:84: error: '__y' was not declared in this scope
            ../../../source/public/includes/KeyValuePair.h: At global scope:
            ../../../source/public/includes/KeyValuePair.h:97: error: expected ',' or '...' before '<' token
            ../../../source/public/includes/KeyValuePair.h:97: error: ISO C++ forbids declaration of 'KeyValuePair' with no type
            ../../../source/public/includes/KeyValuePair.h:97: error: 'bool operator==(int)' must have an argument of class or enumerated type
            ../../../source/public/includes/KeyValuePair.h:97: error: 'bool operator==(int)' must take exactly two arguments
            ../../../source/public/includes/KeyValuePair.h:97: error: redefinition of 'template<class _T1, class _T2> bool operator==(int)'
            ../../../source/public/includes/KeyValuePair.h:82: error: 'template<class _T1, class _T2> bool operator==(int)' previously declared here
            ../../../source/public/includes/KeyValuePair.h: In function 'bool operator==(int)':
            ../../../source/public/includes/KeyValuePair.h:99: error: '__x' was not declared in this scope
            ../../../source/public/includes/KeyValuePair.h:99: error: '__y' was not declared in this scope
            ../../../source/public/includes/KeyValuePair.h: At global scope:
            ../../../source/public/includes/KeyValuePair.h:112: error: expected ',' or '...' before '<' token
            ../../../source/public/includes/KeyValuePair.h:112: error: ISO C++ forbids declaration of 'KeyValuePair' with no type
            ../../../source/public/includes/KeyValuePair.h: In function 'bool operator==(const _T1&, int)':
            ../../../source/public/includes/KeyValuePair.h:114: error: '__x' was not declared in this scope
            ../../../source/public/includes/KeyValuePair.h: At global scope:
            ../../../source/public/includes/KeyValuePair.h:124: error: expected ',' or '...' before '<' token
            ../../../source/public/includes/KeyValuePair.h:124: error: ISO C++ forbids declaration of 'KeyValuePair' with no type
            ../../../source/public/includes/KeyValuePair.h:124: error: 'bool operator<(int)' must have an argument of class or enumerated type
            ../../../source/public/includes/KeyValuePair.h:124: error: 'bool operator<(int)' must take exactly two arguments
            ../../../source/public/includes/KeyValuePair.h: In function 'bool operator<(int)':
            ../../../source/public/includes/KeyValuePair.h:126: error: '__x' was not declared in this scope
            ../../../source/public/includes/KeyValuePair.h:126: error: '__y' was not declared in this scope
            ../../../source/public/includes/KeyValuePair.h: At global scope:
            ../../../source/public/includes/KeyValuePair.h:135: error: expected ',' or '...' before '<' token
            ../../../source/public/includes/KeyValuePair.h:135: error: ISO C++ forbids declaration of 'KeyValuePair' with no type
            ../../../source/public/includes/KeyValuePair.h:135: error: 'bool operator<(int)' must have an argument of class or enumerated type
            ../../../source/public/includes/KeyValuePair.h:135: error: 'bool operator<(int)' must take exactly two arguments
            ../../../source/public/includes/KeyValuePair.h:135: error: redefinition of 'template<class _T1, class _T2> bool operator<(int)'
            ../../../source/public/includes/KeyValuePair.h:124: error: 'template<class _T1, class _T2> bool operator<(int)' previously declared here
            ../../../source/public/includes/KeyValuePair.h: In function 'bool operator<(int)':
            ../../../source/public/includes/KeyValuePair.h:137: error: '__x' was not declared in this scope
            ../../../source/public/includes/KeyValuePair.h:137: error: '__y' was not declared in this scope
            ../../../source/public/includes/KeyValuePair.h: At global scope:
            ../../../source/public/includes/KeyValuePair.h:146: error: expected ',' or '...' before '<' token
            ../../../source/public/includes/KeyValuePair.h:146: error: ISO C++ forbids declaration of 'KeyValuePair' with no type
            ../../../source/public/includes/KeyValuePair.h: In function 'bool operator<(const _T1&, int)':
            ../../../source/public/includes/KeyValuePair.h:148: error: '__x' was not declared in this scope
            ../../../source/public/includes/KeyValuePair.h: At global scope:
            ../../../source/public/includes/KeyValuePair.h:157: error: expected ',' or '...' before '<' token
            ../../../source/public/includes/KeyValuePair.h:157: error: ISO C++ forbids declaration of 'KeyValuePair' with no type
            ../../../source/public/includes/KeyValuePair.h:157: error: 'bool operator!=(int)' must have an argument of class or enumerated type
            ../../../source/public/includes/KeyValuePair.h:157: error: 'bool operator!=(int)' must take exactly two arguments
            ../../../source/public/includes/KeyValuePair.h: In function 'bool operator!=(int)':
            ../../../source/public/includes/KeyValuePair.h:158: error: '__x' was not declared in this scope
            ../../../source/public/includes/KeyValuePair.h:158: error: '__y' was not declared in this scope
            ../../../source/public/includes/KeyValuePair.h: At global scope:
            ../../../source/public/includes/KeyValuePair.h:167: error: expected ',' or '...' before '<' token
            ../../../source/public/includes/KeyValuePair.h:167: error: ISO C++ forbids declaration of 'KeyValuePair' with no type
            ../../../source/public/includes/KeyValuePair.h:167: error: 'bool operator>(int)' must have an argument of class or enumerated type
            ../../../source/public/includes/KeyValuePair.h:167: error: 'bool operator>(int)' must take exactly two arguments
            ../../../source/public/includes/KeyValuePair.h: In function 'bool operator>(int)':
            ../../../source/public/includes/KeyValuePair.h:168: error: '__y' was not declared in this scope
            ../../../source/public/includes/KeyValuePair.h:168: error: '__x' was not declared in this scope
            ../../../source/public/includes/KeyValuePair.h: At global scope:
            ../../../source/public/includes/KeyValuePair.h:177: error: expected ',' or '...' before '<' token
            ../../../source/public/includes/KeyValuePair.h:177: error: ISO C++ forbids declaration of 'KeyValuePair' with no type
            ../../../source/public/includes/KeyValuePair.h:177: error: 'bool operator<=(int)' must have an argument of class or enumerated type
            ../../../source/public/includes/KeyValuePair.h:177: error: 'bool operator<=(int)' must take exactly two arguments
            ../../../source/public/includes/KeyValuePair.h: In function 'bool operator<=(int)':
            ../../../source/public/includes/KeyValuePair.h:178: error: '__y' was not declared in this scope
            ../../../source/public/includes/KeyValuePair.h:178: error: '__x' was not declared in this scope
            ../../../source/public/includes/KeyValuePair.h: At global scope:
            ../../../source/public/includes/KeyValuePair.h:187: error: expected ',' or '...' before '<' token
            ../../../source/public/includes/KeyValuePair.h:187: error: ISO C++ forbids declaration of 'KeyValuePair' with no type
            ../../../source/public/includes/KeyValuePair.h:187: error: 'bool operator>=(int)' must have an argument of class or enumerated type
            ../../../source/public/includes/KeyValuePair.h:187: error: 'bool operator>=(int)' must take exactly two arguments
            ../../../source/public/includes/KeyValuePair.h: In function 'bool operator>=(int)':
            ../../../source/public/includes/KeyValuePair.h:188: error: '__x' was not declared in this scope
            ../../../source/public/includes/KeyValuePair.h:188: error: '__y' was not declared in this scope
            ../../../source/public/includes/KeyValuePair.h: At global scope:
            ../../../source/public/includes/KeyValuePair.h:197: error: expected initializer before '<' token
            ../../../source/public/includes/KeyValuePair.h:225: error: expected ',' or '...' before '<' token
            ../../../source/public/includes/KeyValuePair.h:225: error: ISO C++ forbids declaration of 'KeyValuePair' with no type
            ../../../source/public/includes/KeyValuePair.h: In member function 'bool KeyMatchPredicate<Key, Value>::operator()(int)':
            ../../../source/public/includes/KeyValuePair.h:225: error: 'x' was not declared in this scope
            ../../../source/public/includes/KeyValuePair.h: At global scope:
            ../../../source/public/includes/KeyValuePair.h:252: error: expected ',' or '...' before '<' token
            ../../../source/public/includes/KeyValuePair.h:252: error: ISO C++ forbids declaration of 'KeyValuePair' with no type
            ../../../source/public/includes/KeyValuePair.h: In member function 'bool ValueMatchPredicate<Key, Value>::operator()(int)':
            ../../../source/public/includes/KeyValuePair.h:252: error: 'x' was not declared in this scope
            ../../../source/public/includes/KeyValuePair.h: In function 'void InsertKeyValue(Container&, const Key&, const Value&)':
            ../../../source/public/includes/KeyValuePair.h:282: error: 'KeyValuePair' was not declared in this scope
            ../../../source/public/includes/KeyValuePair.h:282: error: expected primary-expression before ',' token
            ../../../source/public/includes/KeyValuePair.h:282: error: expected primary-expression before '>' token
            ../../../source/public/includes/KeyValuePair.h: In function 'void InsertOrReplaceKeyValue(Container&, const Key&, const Value&)':
            ../../../source/public/includes/KeyValuePair.h:298: error: 'KeyValuePair' was not declared in this scope
            ../../../source/public/includes/KeyValuePair.h:298: error: expected primary-expression before ',' token
            ../../../source/public/includes/KeyValuePair.h:298: error: expected primary-expression before '>' token
            ../../../source/public/includes/KeyValuePair.h: In function 'int32 InsertKeyValueInSorted(Container&, const Key&, const Value&)':
            ../../../source/public/includes/KeyValuePair.h:326: error: expected initializer before '<' token
            ../../../source/public/includes/KeyValuePair.h:328: error: 'el' was not declared in this scope
            ../../../source/public/includes/KeyValuePair.h: In function 'int32 InsertOrReplaceKeyValueInSorted(Container&, const Key&, const Value&)':
            ../../../source/public/includes/KeyValuePair.h:345: error: 'KeyValuePair' was not declared in this scope
            ../../../source/public/includes/KeyValuePair.h:345: error: expected primary-expression before ',' token
            ../../../source/public/includes/KeyValuePair.h:345: error: expected primary-expression before '>' token
            ../../../source/public/interfaces/architecture/IActiveContext.h: At global scope:
            ../../../source/public/interfaces/architecture/IActiveContext.h:56: error: ISO C++ forbids declaration of 'KeyValuePair' with no type
            ../../../source/public/interfaces/architecture/IActiveContext.h:56: error: expected ';' before '<' token
            ../../../source/public/interfaces/architecture/IActiveContext.h:57: error: 'ContextInfo' was not declared in this scope
            ../../../source/public/interfaces/architecture/IActiveContext.h:57: error: template argument 1 is invalid
            ../../../source/public/interfaces/architecture/IActiveContext.h:57: error: template argument 2 is invalid
            ../../../source/public/interfaces/architecture/ISelectionMessages.h:59: error: 'KeyValuePair' was not declared in this scope
            ../../../source/public/interfaces/architecture/ISelectionMessages.h:59: error: template argument 1 is invalid
            ../../../source/public/interfaces/architecture/ISelectionMessages.h:59: error: expected unqualified-id before '>' token
            ../../../source/public/interfaces/architecture/ISelectionMessages.h:172: error: ISO C++ forbids declaration of 'SuiteBroadcastData' with no type
            ../../../source/public/interfaces/architecture/ISelectionMessages.h:172: error: 'SuiteBroadcastData' declared as a 'virtual' field
            ../../../source/public/interfaces/architecture/ISelectionMessages.h:172: error: expected ';' before '*' token
            ../../../source/public/interfaces/architecture/ISelectionMessages.h:366: error: 'KeyValuePair' was not declared in this scope
            ../../../source/public/interfaces/architecture/ISelectionMessages.h:366: error: template argument 1 is invalid
            ../../../source/public/interfaces/architecture/ISelectionMessages.h:366: error: expected unqualified-id before '>' token
            ../../../source/public/interfaces/architecture/ISelectionManager.h:166: error: 'SuiteBroadcastData' has not been declared
            ../../../source/public/interfaces/architecture/ISelectionManager.h:212: error: 'SuiteBroadcastData' has not been declared
            /Volumes/daten/adobe_indesign_cs3_products_sdk_504mac/build/mac/prj/../../../source/sdksam ples/myPluginName/myPluginNameActionComponent.cpp:43: error: definition of implicitly-declared 'virtual myPluginNameActionComponent::~myPluginNameActionComponent()'

            CompileC build/myPluginName.build/Default/Release.build/Objects-normal/i386/myPluginNameDialogObse rver.o /Volumes/daten/adobe_indesign_cs3_products_sdk_504mac/build/mac/prj/../../../source/sdksa mples/myPluginName/myPluginNameDialogObserver.cpp normal i386 c++ com.apple.compilers.gcc.4_0
                cd /Volumes/daten/adobe_indesign_cs3_products_sdk_504mac/build/mac/prj
                /Developer/usr/bin/gcc-4.0 -x c++ -arch i386 -pipe -Wno-trigraphs -fno-exceptions -fpascal-strings -fasm-blocks -O3 -Werror -Wreturn-type -Wunused-value -DMACINTOSH -DBIB_NO_THROW -fmessage-length=0 -fvisibility=hidden -fvisibility-inlines-hidden -fno-threadsafe-statics -Wno-deprecated-declarations -mmacosx-version-min=10.4 -gdwarf-2 -I/Volumes/daten/adobe_indesign_cs3_products_sdk_504mac/build/mac/prj/build/myPluginName. build/Default/Release.build/myPluginName.hmap -DMACTEL_SKIP -Wno-deprecated -F/Volumes/daten/adobe_indesign_cs3_products_sdk_504mac/build/mac/prj/../release/sdk -F../../../build/mac/release/packagefolder/contents/macos -F../../../build/mac/release/packagefolder/contents/Frameworks -I/Volumes/daten/adobe_indesign_cs3_products_sdk_504mac/build/mac/prj/../release/sdk/incl ude -I/Developer/SDKs/MacOSX10.4u.sdk/Developer/Headers/FlatCarbon -I../../../external/adobesourcelibrary/third_party/boost_tp/boost -I../../../external/afl/includes -I../../../source/precomp/common -I../../../source/precomp/msvc -I../../../source/public/includes -I../../../source/public/interfaces/architecture -I../../../source/private/includes/architecture -I../../../source/private/interfaces/architecture -I../../../source/public/includes/utils -I../../../source/public/interfaces/utils -I../../../source/precomp/msvc -I../../../source/public/interfaces/xmedia -I../../../source/public/interfaces/ui -I../../../source/public/interfaces/tables -I../../../source/public/interfaces/text -I../../../source/public/interfaces/graphics -I../../../source/public/components/widgetbin/includes -I../../../source/public/interfaces/workgroup -I../../../source/public/interfaces/interactive -I../../../source/public/interfaces/interactive/ui -I../../../source/public/interfaces/colormgmt -I../../../source/public/interfaces/utils -I../../../source/public/interfaces/incopy -I../../../source/public/interfaces/layout -I../../../source/public/interfaces/architecture -I../../../source/public/interfaces/cjk -I../../../source/precomp/common -I../../../source/public/includes -I../../../source/public/components/publiclib/plugins -I../../../source/public/components/publiclib/files -I../../../source/public/components/publiclib/objectmodel -I../../../external/boost -I../../../source/sdksamples/common -I../../../external/afl/includes -I../../../source/sdksamples/myPluginName -I/Volumes/daten/adobe_indesign_cs3_products_sdk_504mac/build/mac/prj/build/myPluginName. build/Default/Release.build/DerivedSources -isysroot /Developer/SDKs/MacOSX10.4u.sdk -include build/SharedPrecompiledHeaders/Release/PluginPrefix-ajenzpjyosjkeodzeqpqmcfnvjiw/PluginPr efix.pch -c /Volumes/daten/adobe_indesign_cs3_products_sdk_504mac/build/mac/prj/../../../source/sdksa mples/myPluginName/myPluginNameDialogObserver.cpp -o /Volumes/daten/adobe_indesign_cs3_products_sdk_504mac/build/mac/prj/build/myPluginName.bu ild/Default/Release.build/Objects-normal/i386/myPluginNameDialogObserver.o

             

            What am I doing wrong?

            • 3. Re: porting from win to mac / expected constructor destructor or type conversion before
              Another Andrew Community Member

              I was recently working with IActiveContext.h myself and hit a similar looking error.

              My problem was that I didn't include enough headers in the problem source file.

               

              Check over a few SDK examples that use IActiveContext and try pasting the header files from those source files into your code.

              If that works, then start commenting out some of what you pasted to find what header(s) actually did the magic.

               

              Headers that I missed in my case were:

               

              IK2ServiceRegistry.h

              IK2ServiceProvider.h

              IExportProvider.h

              ISelectionManager.h

               

              But you might be missing others. Sometimes I get a similar looking error when I forget K2Vector.h

              • 4. Re: porting from win to mac / expected constructor destructor or type conversion before
                nope0000 Community Member

                I already included headers from SDK samples what didn't solve the issue.

                 

                However I just found the problem, while editing the file I accidentially put a z (by undoing with ctrl+z) as first character in the file. This ended up in the error messages above.

                 

                Unfortunately i now cannot reproduce the error that disappeared when I commented out #include IactiveContext.h anymore, the exactly same file that failed compiling before is compiling now.