我正在用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。)
答案 0 :(得分:7)
看起来就像它们在根命名空间中一样 - 而不是在名为libsift
的命名空间中。如果是这种情况,则不需要using libsift;
指令 - 只需尝试直接访问Keypoint
等。或者可能是global::Keypoint
。应该注意的是,将类型转储到根命名空间是不受欢迎的 - 这使得很难避免冲突。但这是libsift
的错误。
另一种可能性是你已经改变了参考文献中的“别名”属性;应该是“全球性的”。当您在解决方案资源管理器中选择单个引用时,您可以在属性面板中看到此内容 - 以及“复制本地”,“特定版本”等内容。如果是其他内容:将其更改回“全局”,或者学习关于 extern别名。
在本地测试(类型在全局命名空间中):