我有一个问题。 当我在vs2010 c ++表单项目中使用ImageMagicK库编译时。
我有一些像这样的错误代码。
1> ex3.cpp(22):错误C2872:'图片':模棱两可的符号
1>可能是'c:\ program files \ imagemagick-6.8.6-q16 \ include \ Magick ++ / Image.h(55):Magick :: Image'
1>或'c:\ program files \ reference assemblies \ microsoft \ framework.netframework \ v4.0 \ system.drawing.dll:System :: Drawing :: Image'
该文件如下所示:
// ex3.cpp : main project file.
#include "stdafx.h"
#include "Form1.h"
#include <Magick++.h>
using namespace ex3;
using namespace Magick;
[STAThreadAttribute]
int main(array<System::String ^> ^args)
{
// Enabling Windows XP visual effects before any controls are created
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false);
// Create the main window and run it
Application::Run(gcnew Form1());
InitializeMagick(*argv);
Image master;
master.read("C:₩₩abc.jpg");
master.addNoise(ImpulseNoise);
master.write("C:₩₩abc_magic.jpg");
return 0;
}
答案 0 :(得分:0)
在对网络视线进行研究之后。 vc ++似乎不是imagemagick软件套件的选择。没有看到vc ++作为接口
答案 1 :(得分:0)
这是using namespace xxx
导致冲突的示例。在线
Image master;
编译器无法判断您是Magick::Image
还是.NET Image
。
您可以通过显式选择您可能需要的那个并写
Magick::Image master;
这正是首先发明命名空间的原因,以及为什么强烈建议不将using namespace xxx
添加到文件中,只是为了节省一些输入。
就像Victor Torres在他的回答中所说,不确定ImageMagick是否适用于托管C ++,但这是另一个问题。