这必须是一个非常愚蠢的问题,但我仍然很绿,当涉及到C#。
无论如何,我有一个DLL,我用这样的行导入它:
[DllImport(@"MyCoolDll")]
我举起由供应商提供的演示程序这条直线,但它不停地抱怨,它无法找到DLL。 实际的错误(从Visual Studio 2010)是这样的:
Unable to load DLL 'MyCoolDll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
我试着将已编译的DLL的bin /调试和斌/释放文件夹。 我甚至试过将其复制到system32下,但似乎没有任何工作。
有任何想法吗?
我知道你必须给完整的文件名。 所以
[DllImport(@"MyCoolDll.dll")]
它应该从BIN \ Debug或Bin \文件夹中释放工作。
更新
这是我学会了如何导入托管DLL。 如果是正常工作的测试应用程序,检查它的bin \ debug文件夹,看看有什么是你的不同。 可能还提供额外的dll被引用? 同时检查示例应用程序内的所有引用,以确保您不会错过任何。
据我所知,你必须提供扩展:
[DllImport(@"MyCoolDll.dll")]
我通常程序二进制(因此斌\调试的发展)保持局部这些DLL
对我来说,关键是看在Visual Studio构建控制台输出中列出的路径,看到二进制文件被放在哪里。 有一次,我发现,我知道从哪里抄的非托管的DLL,它固定的“无法加载DLL”错误。