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

时间:2011-05-11 21:07:58

标签: c# pinvoke dllimport

我从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?或者它会抛出BadImageFormatException when loading 32 bit DLL, target is x86

建议的BadImageFormatException