Я создал DLL C#, который имеет некоторые формы в нем. (Мне был нужен он, чтобы быть DLL, не Приложением Windows.), Как я могу выполнить его как Приложение Windows? Я должен создать другое приложение и загрузить его? Как? Что я должен учиться делать это? сообщите мне, должен ли я объяснить больше о своем вопросе.
Если вы используете VS 2008:
Сначала создайте проект приложения Windows Forms. Вы можете удалить созданную форму по умолчанию (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 для координации поведения форм.
Вы можете добавить формы в DLL, затем сделать публичную статическую функцию в DLL, которая вызывает Application.Run
с формой.
Затем вы можете вызвать этот публичный статический метод из проекта приложения C# (после добавления ссылки на DLL).
Вы можете запустить ее с помощью RunDll32, однако вам, возможно, придется немного подправить DLL, прежде чем она заработает. Вам может понадобиться поместить Application.Run
в точку входа. таким образом, вам не нужно компилировать другое приложение, чтобы использовать его.
приведенный ниже код не проверялся, но я думаю, что он должен работать.
public static void myDllEntryPoint()
{
Application.run(new MyFormInDll());
}
Запустите ваше приложение как
rundll32.exe myDll.dll,myDllEntryPoint