【问题标题】:The difference between using extern with dllImport and adding a reference to a project将 extern 与 dllImport 一起使用与添加对项目的引用之间的区别
【发布时间】:2014-02-22 18:53:10
【问题描述】:

我在 MSDN 中阅读了有关 extern 的信息:

http://msdn.microsoft.com/en-us/library/e59b22c5.aspx

我不确定使用 extern 与仅添加 dll 作为对项目的引用有什么区别。

【问题讨论】:

标签: c# .net reference extern


【解决方案1】:

如前所述,它通常与DllImport 一起使用。 DllImport 的一个常见场景是使用本机 dll 而不是托管的。

由于您无法将本机 dll 作为参考添加到项目中,因此您需要在运行时导入它。

如果您有托管程序集,通常最好在您的项目中确实引用它。

查看您的链接示例,它们导入本机库并在其上调用函数。

【讨论】:

    【解决方案2】:

    一个区别:如果您想复制或重用此代码,DllImport 可以正常工作。

    【讨论】:

    • 请详细说明,因为您的回答对我来说没有意义。
    • 当你添加dll作为引用,并添加using dll命名空间,并在方法中使用dll的功能时,当代码或重用该方法时,可能需要添加对其他类或项目的引用.
    • 好吧,我想这里存在语言障碍,但我想我明白了你想说的:当你引用一个程序集时,你会创建一个明确的依赖关系。当您的程序集被另一个程序集使用时,您还将获得对引用项目的隐式依赖。这是正确的,但是 DllImport 确实也施加了依赖关系,并且它同时隐藏了它,因为 DllImports 可能分散在用户代码中,因此很难发现依赖关系。
    • 是的,对不起我的英语不好。
    猜你喜欢
    • 2014-10-30
    • 1970-01-01
    • 1970-01-01
    • 2016-03-23
    • 2020-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多