使用 pinvoke 时,当仅提供 dll 名称时,dll 的基本路径是什么

本文关键字:dll 路径 是什么 pinvoke 使用 | 更新日期: 2023-09-27 17:56:02

我从 c# 调用以下内容:

[DllImport("u3dapi10.dll", CharSet=CharSet.Auto)]
public static extern uint dapiCreateSession(out uint hSession);

.NET 在哪里查找 u3dapi10.dll 文件?这以前是有效的,但现在我得到了一个DLLNotFoundException。

u3dapi10.dll 文件位于项目的根目录中。我尝试将其复制到 bin/debug 目录只是为了看看会发生什么,但它也在那里找不到它。

可能的原因:这可能是由u3dapi10.dll不兼容64位引起的吗?例如,如果您尝试从 64 位计算机访问 32 位 dll,是否会抛出 DllNotFoundException?或者它会在加载 32 位 DLL 时按照 BadImageFormatException 的建议抛出 BadImageFormatException,目标是 x86

使用 pinvoke 时,当仅提供 dll 名称时,dll 的基本路径是什么

请参阅:在 .NET 中指定 DllImport 的搜索路径

http://msdn.microsoft.com/en-us/library/ms682586%28VS.85%29.aspx