代码之家  ›  专栏  ›  技术社区  ›  Mark

从vb.net调用非托管代码时,使用declare lib或dllimportattribute更可靠吗?

  •  1
  • Mark  · 技术社区  · 14 年前

    我们有一个vb.net程序,需要定期调用外部非托管dll中的函数,以便与旧应用程序通信。我们的应用程序出现问题(似乎是随机的),找不到具有非托管代码的dll。目前,我们对非托管代码使用declare函数blah lib。使用dllimportattribute会更好/更可靠吗?还是我错过了什么?

    1 回复  |  直到 14 年前
        1
  •  4
  •   Hans Passant    14 年前

    不管怎样,它都没有什么区别,它是完成任务的完全相同的P/Invoke封送拆收器。declare语句假定不同的默认值,如charset,因此如果您打算交换它们,请注意。

    随机dll搜索问题的最典型原因是使environment.currentdirectory发生更改。就像使用OpenFileDialog一样。将dll(及其依赖项)保持在与exe相同的目录中,以避免发生这种情况。