我正在用 C# 编写计算机视觉程序,需要 SIFT 项目的一部分;我为 SIFT 下载了 MEMO 库:
http://www.nowozin.net/sebastian/tu-berlin-2006/libsift/
在我的项目中,我添加了两个库 ****libsift.dll 和 ICSharpCode.SharpZipLib.dll** ** 作为对我项目的引用。
现在我想在代码“USING libsift”之上提及 libsift,但它无法识别它;
甚至更多,如果我想创建此类的实例,atuo detect 无法识别它。
这很奇怪,因为我可以在对象浏览器中看到这个库的功能。
虽然我可以在对象浏览器中看到这些函数,但我无法在我的项目中使用我已经作为引用导入的库?可能是什么问题呢?
(我在 Windows 中有 c# .Net VS2010。)
最佳答案
它看起来就像它们在根命名空间中 - 而不是在名为 libsift
的命名空间中。如果是这种情况,您不需要 using libsift;
指令 - 只需尝试直接访问 Keypoint
等。或者可能是 global::Keypoint
。应该注意的是,将类型转储到根命名空间中是不受欢迎的——这很难避免冲突。但那是 libsift
的错。
另一种可能性是您更改了引用的“别名”属性;那应该是“全局的”。当您在解决方案资源管理器中选择一个单独的引用时,您可以在属性面板中看到这一点——旁边是“复制本地”、“特定版本”等内容。如果是其他内容:将其改回“全局”,或学习关于外部别名。
本地测试(类型在全局命名空间中):
关于c# - 我无法在我的项目中使用我已经导入的库作为引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13279613/