0

我有从 7 到 11 个版本的 XULRunner 运行良好的 C++ 代码:

    nsRefPtr<gfxWindowsSurface> targetSurface = new gfxWindowsSurface(hDC, gfxWindowsSurface::FLAG_FOR_PRINTING); 
    nsRefPtr<gfxContext> ctx = new gfxContext(targetSurface);

但是当我尝试用 XULRunner 12 及更高版本编译它时,它会导致链接错误:

error LNK2019: unresolved external symbol "public: __thiscall gfxContext::gfxContext(class gfxASurface *)" (??0gfxContext@@QAE@PAVgfxASurface@@@Z) 
error LNK2019: unresolved external symbol "public: __thiscall gfxWindowsSurface::gfxWindowsSurface(struct HDC__ *,unsigned int)" (??0gfxWindowsSurface@@QAE@PAUHDC__@@I@Z) 

我为 xul.lib 制作了垃圾箱,发现现在没有任何用于 THEBES API 的导出。当 SDK 将版本从 11 更改为 12 时,它们已被删除。在最新的 xulrunner sdk 中,是否可以在二进制 XPCOM 中使用 gfxWindowsSurface 和 gfxContext?

谢谢,

哔叽

4

1 回答 1

0

相关更改是错误 683891,另请参阅错误 718985以进行扩展讨论。允许第三方直接访问图形代码似乎不再被认为是可取的。所以你的问题的答案是:不,你不能再用股票 XULRunner 做到这一点。因此,您可以寻找替代方法来实现您的目标(例如,更高级别的绘图表面,如<canvas>bug 中建议的那样),或者您可以创建自己的 XULRunner 构建并恢复此特定补丁。

于 2012-07-18T11:01:52.883 回答