小编Ali*_*cia的帖子

为什么这些 DLL 有两个明显相同的入口点?

今天,在处理一些 VB.NET 代码时,我必须访问两个外部 DLL 才能使用某些方法。我找到的帮助主题告诉我使用以下外部方法:

\n\n
    \n
  • shlwapi.dll \xe2\x86\x92 PathIsNetworkPath(参考1
  • \n
  • mpr.dll \xe2\x86\x92 WNetAddConnection2 和 WNetCancelConnection2(参考 2
  • \n
\n\n

但是,当我尝试从代码中调用这些方法时,我收到一条错误,指出入口点不存在。所以我做了一些研究,发现我的操作系统(Windows 7 enterprise 32 位)中的 DLL 并不完全包含这些方法,但相反,我得到了:

\n\n
    \n
  • PathIsNetworkPath \xe2\x86\x92 PathIsNetworkPath A / PathIsNetworkPath W
  • \n
  • WNetAddConnection2 \xe2\x86\x92 WNetAddConnection2 A / WNetAddConnection2 W
  • \n
  • WNetCancelConnection2 \xe2\x86\x92 WNetCancelConnection2 A / WNetCancelConnection2 W
  • \n
\n\n

因此,我测试了它们的行为:\n* 以“A”结尾的方法按预期工作。\n* 以“W”结尾的方法不能按预期工作,它们会引发错误或返回错误的结果(当它应该是“true”)。\n然而,帮助主题中没有人提到有类似的问题。

\n\n

所以我做了一些研究,在MSDN 文档中我发现 DLL 只包含以“A”和“W”结尾的方法,并且在我使用的三种情况下,它们的文档页面是相同的据我所知。事实上,在整个页面中,他们都没有使用以 A/W 结尾但没有它的方法名称。

\n\n

所以我的问题是:*为什么我的 DLL 中有方法“A”和“W”而不是没有 A/W 的方法?他们两个有什么区别?为什么方法“A”对我有效,而方法“W”则无效?

\n

.net vb.net dll dllimport

1
推荐指数
1
解决办法
558
查看次数

标签 统计

.net ×1

dll ×1

dllimport ×1

vb.net ×1