如果我通过以下方式在C#中引用外部非托管DLL:
[DLLImport("MyDLL.dll", ...
当我想从IDE运行代码时,应该放置DLL的位置?它应该在bin\Debug
文件夹中吗?
答案 0 :(得分:1)
您正在使用哪种编译配置?
如果要从Visual Studio Debug / Run运行应用程序,它将位于项目文件夹
中如果您想通过双击运行,它应该位于
中的exe附近bin \ Debug
或
bin \ Release
文件夹中。
答案 1 :(得分:1)
可由LoadLibrary
函数定位的任何地方。有关详细信息,请参阅Dynamic-Link Library Search Order:
如果启用了
SafeDllSearchMode
,则搜索顺序如下:
- 加载应用程序的目录。
- 系统目录。使用
GetSystemDirectory
函数获取此目录的路径。- 16位系统目录。没有函数可以获取此目录的路径,但会搜索它。
- Windows目录。使用
GetWindowsDirectory
函数获取此目录的路径。- 当前目录。
PATH
环境变量中列出的目录。请注意,这不包括App Paths注册表项指定的每个应用程序路径。计算DLL搜索路径时不使用App Paths键。
bin\Debug
满足第一点,假设您只是在Debug
配置中运行应用程序。
答案 2 :(得分:0)
是的,除了编译器生成的.exe
文件(最终在bin\Debug\
之后),应该是完美的。