C# 将C控制台应用程序转换为DLL
我正在将Betfair API从SOAP重写为JSON,我开始使用以前的方式作为控制台应用程序,然后从任务调度器或win服务调用它 然而,现在我被要求用代码做各种不同的工作,我不想为每项工作编写一个控制台应用程序——不同的网站想要价格、下注等等 新的代码库比旧的代码库大得多,我本来可以将4个文件从旧系统复制到一个DLL应用程序中,然后创建各种控制台应用程序/服务来实现DLL-但是,因为它有40多个文件,如果可能的话,我不想要复制粘贴作业 有没有一种方法可以使用VS中的一些工具或命令轻松地将现有控制台项目转换为类/DLL项目 我希望能够创建简单的应用程序C# 将C控制台应用程序转换为DLL,c#,.net,dll,console-application,C#,.net,Dll,Console Application,我正在将Betfair API从SOAP重写为JSON,我开始使用以前的方式作为控制台应用程序,然后从任务调度器或win服务调用它 然而,现在我被要求用代码做各种不同的工作,我不想为每项工作编写一个控制台应用程序——不同的网站想要价格、下注等等 新的代码库比旧的代码库大得多,我本来可以将4个文件从旧系统复制到一个DLL应用程序中,然后创建各种控制台应用程序/服务来实现DLL-但是,因为它有40多个文件,如果可能的话,我不想要复制粘贴作业 有没有一种方法可以使用VS中的一些工具或命令轻松地将现有控
BetfairBOT myBOT = new BetfairBOT()
myBOT.RunGetPrices();
或
e、 g 2/3行代码,用于实现已注册到我的应用程序的DLL
因此,没有复制和粘贴,我可以做到这一点
如果需要,我使用VS 2012、.NET 4.5或4.0,具体取决于服务器Windows 8.1
任何帮助都将不胜感激。此答案来自。虽然它使用winforms而不是控制台应用程序,但我认为您将能够使用它
创建DLL的步骤
步骤1:-文件->新建->项目->Visual C项目->类库。选择项目名称和相应的目录,然后单击“确定”
单击“确定”按钮后,解决方案资源管理器将添加一个C类“Class1.cs”。在这个类中,我们可以编写代码
当我们双击Class1.cs时,我们会看到一个创建DLL的命名空间。我们将在项目中使用这个名称空间来访问这个类库
步骤2:-在Class1.cs中,我们创建了一个名为“sum”的方法,该方法接受两个整数的值,并将sum返回给witch方法传递的数字
using System;
namespace CreatingDLL
{
public class Class1
{
/// <summary>
/// sum is method that take two integer value and return that sum
/// </summary>
/// <param name="x"></param>
/// <param name="y"></param>
/// <returns></returns>
public int sum(int x, int y)
{
return x + y;
}
}
}
步骤8:-现在构建应用程序并执行项目,然后查看输出
编辑:要将应用程序更改为库,请执行以下步骤
首先,双击解决方案资源管理器窗口内的属性
然后,在打开的页面上,将输出类型从控制台应用程序更改为类库
在解决方案资源管理器中选择项目。。。右键单击并选择属性。。。选择应用程序选项卡。。。。输出类型下拉列表中列出了什么?是否已启用?嗨,是,列出了控制台应用程序。还有Windows应用程序和类库。如果我只是把它改成类库,那就行了。然后我只需要删除带有mainstring[]args等的程序类,当编译为EXE时它将是一个DLL?不确定VS2012将做什么。。。后退一步,让它旋转一下。。。afaik它只会将存储在.csprojXML文件中的输出类型定义更改为GUID和一些模板基础。。。作为类库,它应该编译成dll。。不是,嗯?哈哈,是的,对不起。仅用于windows应用程序和控制台应用程序。如果这不起作用,那么这是创建一个新项目,然后手工复制一个又一个类的唯一方法,还是有一种自动化的方法?Tools etcI认为您可以只更改输出类型,但即使您不能,如果您的控制台应用程序是使用内部业务类编写的,您也可以在解决方案资源管理器中拖放文件并修复名称空间。嗨,Scott,我明天有空时会尝试一下。看起来不错,为所有截图干杯。谢谢你,你从来没有告诉过我,我如何可以复制200多个类到这个新项目中,而无需复制粘贴作业?我真的不想手工做。我能把整个项目复制到新课上吗project@MonkeyMagix我编辑我的答案是为了向你展示如何将一个应用程序更改为库。因此,只需进行一次更改,即可复制所有文件或将其重新分配给新的应用程序-酷。Thanks@MonkeyMagix如果答案对您有用,请单击答案旁边的复选标记。
using System;
namespace CreatingDLL
{
public class Class1
{
/// <summary>
/// sum is method that take two integer value and return that sum
/// </summary>
/// <param name="x"></param>
/// <param name="y"></param>
/// <returns></returns>
public int sum(int x, int y)
{
return x + y;
}
}
}
using System;
using System.Windows.Forms;
using CreatingDLL;
namespace AccessingDLL
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnAdd_Click(object sender, EventArgs e)
{
Class1 c1 = new Class1();
try
{
txtResult.Text = Convert.ToString(c1.sum(Convert.ToInt32(txtNumber1.Text), Convert.ToInt32(txtNumber2.Text)));
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
}