【发布时间】:2012-08-16 03:02:17
【问题描述】:
有没有办法在 Visual Studio 的设计时加载非托管 dll?
我知道我总是可以将DLL放在“System32”文件夹中或将DLL路径添加到“PATH”变量中以直接加载它。但我不想那样做。我想从应用程序的 ExecutablePath 加载它。 DLL 实际上包含一个控件。
谁能帮我解决这种情况??
谢谢, 写字
【问题讨论】:
-
您可能必须从可执行路径中 PInvoke 它,然后自己构建设计器。 VS 设计器只需创建一个 .designer.cs 文件,您也可以手动编写该文件。
-
我要使用VS的设计器!这就是为什么我要问是否有其他方法可以做到这一点!或者我会使用“空白应用程序”模板而不是“Windows 窗体项目”!如果我尝试编辑
*.designer.cs文件,那么我认为 vs 会覆盖它,因为我以前遇到过这样的问题! -
我并不是说要覆盖 *.designer.cs 文件,而是设计器文件只是创建了一个部分类文件,您可以将其放入另一个文件中。非托管代码是在运行时调用的,这就是设计人员无法看到/使用它的原因,因为它无法在 VS 设计器中生成。这与无需重新编译应用程序即可换出 DLL 的原因相同。
-
是的,我知道设计器文件包含表单的部分类。是的,“在运行时调用非托管代码”,但是当我在设计器中添加一个控件 [由 dll [包含由另一个 .net dll 包装]] 时,它只是不起作用并显示错误消息框!所以,我问是否有办法从应用程序路径中预加载设计器中的 dll! [我不会为这个小作品自己手动重写设计器!]
标签: c# dll unmanaged windows-forms-designer