【问题标题】:What is the correct way to initialize a Matrix in C++98?在 C++98 中初始化矩阵的正确方法是什么?
【发布时间】:2009-12-02 14:48:41
【问题描述】:
  1. 我不是程序员
  2. 我想在win32下编译Inkscape,偶然发现了这些错误信息:

ui/dialog/filedialogimpl-win32.cpp:1379:错误:在 C++98 中,'matrix' 必须由构造函数初始化,而不是由 '{...}'
make[1]: *** [ui/dialog/filedialogimpl-win32.o] 错误 1

filedialogimpl-win32.cpp的疑似代码:

... // 绘制图像 if(_preview_bitmap_image) // 图像是 pixbuf 吗? { // 设置变换 常量矩阵矩阵 = { 比例因子,0, 0,比例因子, svgX, svgY }; 上下文->set_matrix(矩阵); ...

那么它是如何用 C++98 标准编写的呢?

我在谷歌上搜索过,但没有人遇到这种情况,这可能是无关的吗?

【问题讨论】:

  • 您确定您使用了正确的工具(编译器)吗?
  • 你从哪里得到代码,你确定它自上次已知的良好配置以来没有改变吗?它的目标是什么编译器等,你在用什么?为什么你不是程序员时要编译,而不是下载 MS Windows .exe 文件?
  • 哦...标准中没有任何内容称为 Matrix。那是源代码中某处定义的类。如果需要帮助,请对“class Matrix”和“Matrix::Matrix”进行文本搜索并发布一些代码。或者发布您获得源代码的确切位置,以及源代码上的确切文件名(通常是 MS Windows 的 .zip 文件)。
  • 我使用 msys + mingw,它来自 202.55.147.10/sourceforge/i/project/in/inkscape/inkscape/0.47/… 我自己构建了大部分依赖项,除了 gtk/gtkmm 和 gc。 @David thornley 当前二进制文件的问题是它们很大(异常巨大的dll)。所以我尝试自己构建它并避免使用 btool。我可以编写一些脚本,但肯定没有 C/C++ 技能。当然你不需要.zip(它太大了)......无论如何它是跨平台的。我有 7zip。

标签: c++ mingw c++98


【解决方案1】:

代替

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

应该是这样的:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多