使用 ImageMagicK 在 vc++ 中出现不明确的错误
ambiguous error in vc++ with ImageMagicK
我有一个问题。
当我在 vs2010 c++ 表单项目中使用 ImageMagicK 库进行编译时。
我有一些这样的错误代码。
1>ex3.cpp(22):错误 C2872:'Image':符号不明确
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;
}
在对网络视觉进行研究之后。
vc++ 似乎不是 imagemagick 软件套件的选择。没有看到 vc++ 作为接口
这是 using namespace xxx
引起冲突的示例。在线
Image master;
编译器无法判断您是指 Magick::Image
还是 .NET Image
。
你可以select你可能需要的那个,明确地写
Magick::Image master;
这正是首先发明名称空间的原因,也是为什么强烈建议不要在文件中添加using namespace xxx
,只是为了节省一些打字。
正如 Victor Torres 在他的回答中所说,不确定 ImageMagick 是否完全适用于托管 C++,但这是另一个问题。
我有一个问题。 当我在 vs2010 c++ 表单项目中使用 ImageMagicK 库进行编译时。
我有一些这样的错误代码。
1>ex3.cpp(22):错误 C2872:'Image':符号不明确
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;
}
在对网络视觉进行研究之后。 vc++ 似乎不是 imagemagick 软件套件的选择。没有看到 vc++ 作为接口
这是 using namespace xxx
引起冲突的示例。在线
Image master;
编译器无法判断您是指 Magick::Image
还是 .NET Image
。
你可以select你可能需要的那个,明确地写
Magick::Image master;
这正是首先发明名称空间的原因,也是为什么强烈建议不要在文件中添加using namespace xxx
,只是为了节省一些打字。
正如 Victor Torres 在他的回答中所说,不确定 ImageMagick 是否完全适用于托管 C++,但这是另一个问题。