2009-12-02 73 views
0
  1. 我不是程序员
  2. 我想要编译Inkscape中在Win32中,并无意中发现了这些错误消息:

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 1什么是在C++ 98中初始化Matrix的正确方法?

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); 
... 

所以它如何用C++ 98标准编写?

我用谷歌搜索它,但没有人遇到过这种方式,它可能是无关的?

+0

你确定你使用正确的工具(编译器)? – kgiannakakis 2009-12-02 15:05:59

+1

你从哪里得到代码,并且你确定它自从上次已知的良好配置以来没有改变过?什么样的编译器和它的目标是什么,你在用什么?而且,为什么在编译时不是程序员,而不是下载MS Windows .exe文件? – 2009-12-02 15:59:20

+0

哦......标准中没有什么叫Matrix。这是在某个地方的源代码中定义的类。如果你需要帮助,文本搜索“class Matrix”和“Matrix :: Matrix”并发布一些代码。或者准确地发布你获得源代码的位置,以及源代码中的确切文件名(通常是MS Windows的.zip文件)。 – 2009-12-02 16:01:23

回答

4

而不是

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

应该是这样的:

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

+0

谢谢!这对我有用 – twinkletoes 2009-12-03 14:00:00

相关问题