我创建了一个C#DLL,其中包含一些表单。 (我需要它是一个DLL,而不是一个Windows应用程序。) 如何将其作为Windows应用程序运行?我应该创建另一个应用程序并加载它吗?怎么样?我需要学习什么才能做到这一点? 如果我应该更多地解释我的问题,请告诉我。
答案 0 :(得分:6)
如果你正在使用VS 2008:
首先,创建一个Windows窗体应用程序项目。如果您不打算使用它,可以删除创建的默认表单(Form1.cs)。
在解决方案资源管理器中,右键单击参考,然后选择添加参考。这是您添加自定义设计的C#DLL的地方。
现在打开Program.cs,并进行以下更改:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using ****your DLL namespace here****
namespace WindowsFormsApplication2
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new [****your startup form (from the DLL) here****]);
}
}
}
如果DLL包含断开连接的表单,您可能需要在winforms项目中添加一个类来协调表单行为。
答案 1 :(得分:4)
您可以向DLL中添加表单,然后在DLL中使用表单调用Application.Run
来创建公共静态函数。
然后,您可以从C#Application项目中调用此公共静态方法(在添加对DLL的引用之后)。
答案 2 :(得分:4)
您可以使用RunDll32启动它,但是在它工作之前您可能需要稍微调整一下dll。您可能需要在入口点放置Application.Run
。这样您就不需要编译另一个整个应用程序来使用它。
以下代码未经测试,但我认为它应该可行。
public static void myDllEntryPoint()
{
Application.run(new MyFormInDll());
}
以
运行您的应用程序rundll32.exe myDll.dll,myDllEntryPoint