【发布时间】:2011-03-02 14:02:56
【问题描述】:
我正在使用 Visual Studio 2008 Professional,我需要创建包含两个项目的解决方案。第一个项目是托管的 WinForms C# 项目,第二个是非托管的 DLL C++ 项目。
我在 VS2008 和非托管 DLL 项目中创建了它们,我导出了返回一些 int 的简单函数。在托管的 WinForms 项目中,我以通常的方式导入 DLL 并尝试在标签中打印返回值:
[DllImport("DllProj.dll", EntryPoint = "GetSomeInt", SetLastError = true)]
private static extern int GetSomeInt();
但是当我构建解决方案并运行时,我得到DllNotFoundException。我还尝试将现有项目(DllProj.dll)添加到 WinForms 项目,但它只将该 dll 从其 Debug 文件夹复制到 WinForms 项目的文件夹,而不是在已编译项目所在的 Debug 子文件夹中。所以我仍然收到DllNotFoundException。
我也尝试将它添加为引用,但 VS2008 抱怨我的 DLL 不是 COM 或托管对象。是否有某种方法可以配置解决方案,这样我就不需要在每次构建后手动将编译后的 DLL 复制到 WinForms 项目的 Debug 子文件夹?
【问题讨论】:
标签: c# .net c++ visual-studio