2009-12-02 7 views
0
  1. Je ne suis pas programmeur
  2. Je veux compiler Inkscape dans win32, et sommes tombés sur ces messages d'erreur:

ui/dialog/filedialogimpl-win32.cpp:1379: error: in C++98 'matrix' must be initialized by constructor, not by '{...}'
make[1]: *** [ui/dialog/filedialogimpl-win32.o] Error 1Quelle est la bonne façon d'initialiser une matrice en C++ 98?

Le code soupçonné de filedialogimpl-win32.cpp:

 
... 
    // Draw the image 
    if(_preview_bitmap_image) // Is the image a pixbuf? 
    { 
     // Set the transformation 
     const Matrix matrix = { 
      scaleFactor, 0, 
      0, scaleFactor, 
      svgX, svgY }; 
     context->set_matrix (matrix); 
... 

Alors comment est-il écrit en C++ 98 standard?

Je l'ai googler, mais personne ne rencontre cette façon, pourrait-il être sans rapport?

+0

Êtes-vous sûr que vous avez utilisé les bons outils (compilateur)? – kgiannakakis

+1

Où avez-vous reçu le code, et êtes-vous sûr qu'il n'a pas été changé depuis la dernière bonne configuration connue? Quels compilateurs et autres étaient-ils ciblés, et qu'utilises-tu? Et pourquoi compilez-vous quand vous n'êtes pas un programmeur, plutôt que de télécharger le fichier MS Windows .exe? –

+0

Oh ... il n'y a rien dans la norme appelée Matrix. C'est une classe définie dans le code source quelque part. Est-ce que le texte recherche "class Matrix" et "Matrix :: Matrix" et publie une partie de ce code, si vous voulez de l'aide. Ou publiez exactement où vous avez obtenu le code source, et quel est le nom exact du fichier sur le code source (généralement un fichier .zip pour MS Windows). –

Répondre

4

Au lieu de

const Matrix matrix = { scaleFactor, 0, 0, scaleFactor, svgX, svgY };

il devrait y avoir quelque chose comme ceci:

const Matrix matrix( scaleFactor, 0, 0, scaleFactor, svgX, svgY);

+0

merci! c'est le travail pour moi – twinkletoes