我正在用 c# 编写一个计算机视觉程序,需要项目 SIFT 的一部分;我下载了 SIFT 的 MEMO 库:

http://www.nowozin.net/sebastian/tu-berlin-2006/libsift/

在我的项目中,我添加了两个库 ****libsift.dll 和 ICSharpCode.SharpZipLib.dll** ** 作为对我的项目的引用。

既然我想在代码“USING libsift”之上提及 libsift,它就无法识别它;

更重要的是,如果我想创建这样一个类的实例,则自动检测无法识别它。

这很奇怪,因为我可以在对象浏览器中看到这个库的功能。



尽管我可以在对象浏览器中看到函数,但我无法使用已经作为引用导入的库?可能是什么问题呢?

(我在 Windows 中有 c# .Net VS2010。)

最佳答案

看起来它们在根命名空间中 - 而不是在名为 libsift 的命名空间中。如果是这种情况,则不需要 using libsift; 指令 - 只需尝试直接访问 Keypoint 等。或者可能是 global::Keypoint 。应该注意的是,将类型转储到根命名空间中是不受欢迎的 - 这使得很难避免冲突。但这是 libsift 的错。

另一种可能性是您更改了引用的“别名”属性;那应该是“全局性的”。当您在解决方案资源管理器中选择单个引用时,您可以在属性面板中看到这一点 - 旁边是“复制本地”、“特定版本”等。如果还有其他内容:将其改回“全局”,或学习关于外部别名。

本地测试(类型在全局命名空间中):

关于c# - 我无法在我的项目中使用我已经作为引用导入的库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13279613/

10-11 02:05