2009-12-02 161 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

相關問題