如何把C#开发的程序做成一个可执行文件让DELPHI程序调用?

时间:2021-09-24 09:39:41
情况是这样的,我们几个一起开发一个程序,每个人负责一部分功能,我是用C#开发,别人是用DELPHI开发,现在我想把自己用C#实现的功能供他们调用,这应该要打包?还是生成可执行文件,然后他们调用我的可执行文件?如何生成可执行文件呢?帮说的详细点,谢谢!

13 个解决方案

#1


如何把C#开发的程序做成一个可执行文件让DELPHI程序调用?

你经理居然让你们这么干?

这能可以吗?  平台都不一样啊   是写功能 又不是写类库.... 你当这是html呢....

#2


引用 1 楼 diaodiaop 的回复:
如何把C#开发的程序做成一个可执行文件让DELPHI程序调用?

你经理居然让你们这么干?

这能可以吗?  平台都不一样啊   是写功能 又不是写类库.... 你当这是html呢....
帮提点有建设性的建议,谢谢

#3


你先要搞清楚,别人使用 Delphi 还是 Delphi.NET ?

#4


是DELPHI的,难道不能调用C#开发的程序?只要实现他们的界面上点击一个按钮然后就弹出我开发的界面程序就行了

#5


如果是8、9年前的东西,那么你的 c# 类库就需要封装并注册为 COM 组件。

#6


引用 4 楼 just308 的回复:
是DELPHI的,难道不能调用C#开发的程序?只要实现他们的界面上点击一个按钮然后就弹出我开发的界面程序就行了


如果只是这种简单的交互,那么就不用考虑什么平台的差别问题了。它们可以通过shell/dos跨进程地启动你的程序,同时传送参数。你的程序只要解析命令行参数即可。

#7


引用 6 楼 sp1234 的回复:
Quote: 引用 4 楼 just308 的回复:

是DELPHI的,难道不能调用C#开发的程序?只要实现他们的界面上点击一个按钮然后就弹出我开发的界面程序就行了


如果只是这种简单的交互,那么就不用考虑什么平台的差别问题了。它们可以通过shell/dos跨进程地启动你的程序,同时传送参数。你的程序只要解析命令行参数即可。
是啊,都没什么通信的,只是他们单击一下按钮,然后开始运行我的界面,我的程序是独立的功能,那我要把我开发的程序怎么弄下给他们用呢?

#8


居然这么做,
你让他学习.net呀。

#9


直接让delphi用Winexe 或 shellExecute 的api去执行你的C#程序就可以了

#10


引用 7 楼 just308 的回复:
Quote: 引用 6 楼 sp1234 的回复:

Quote: 引用 4 楼 just308 的回复:

是DELPHI的,难道不能调用C#开发的程序?只要实现他们的界面上点击一个按钮然后就弹出我开发的界面程序就行了


如果只是这种简单的交互,那么就不用考虑什么平台的差别问题了。它们可以通过shell/dos跨进程地启动你的程序,同时传送参数。你的程序只要解析命令行参数即可。
是啊,都没什么通信的,只是他们单击一下按钮,然后开始运行我的界面,我的程序是独立的功能,那我要把我开发的程序怎么弄下给他们用呢?


不用弄上什么啊。它们的dephi程序应该自动启动执行你的.exe文件,包括可以使用命令行参数传递数据。这跟你的.net编程没有半点关系,这是windows/dos的规范。如果这个“调用.exe”都不会,它们就也别去编写什么dephi程序了。

#11


给你举个c#的例子(delphi的代码我们不写)

比如说要打开 notepad.exe 程序,我们可以写
System.Diagnostics.Process.Start("notepad.exe");


比如说要用它打开 c:\test\x1.txt 文件,可以写
System.Diagnostics.Process.Start("notepad.exe","c:\\test\\x1.txt");


比如说我们要阻塞等待 notepad.exe 程序执行完毕,我们可以写
System.Diagnostics.Process.Start("notepad.exe").WaitForExit();

#12


在Delphi里面写
Winexec('c:\xxx\你的程序.exe')

#13


C#这里打开VS按Ctrl+f5,在bin/debug中找到exe。

#1


如何把C#开发的程序做成一个可执行文件让DELPHI程序调用?

你经理居然让你们这么干?

这能可以吗?  平台都不一样啊   是写功能 又不是写类库.... 你当这是html呢....

#2


引用 1 楼 diaodiaop 的回复:
如何把C#开发的程序做成一个可执行文件让DELPHI程序调用?

你经理居然让你们这么干?

这能可以吗?  平台都不一样啊   是写功能 又不是写类库.... 你当这是html呢....
帮提点有建设性的建议,谢谢

#3


你先要搞清楚,别人使用 Delphi 还是 Delphi.NET ?

#4


是DELPHI的,难道不能调用C#开发的程序?只要实现他们的界面上点击一个按钮然后就弹出我开发的界面程序就行了

#5


如果是8、9年前的东西,那么你的 c# 类库就需要封装并注册为 COM 组件。

#6


引用 4 楼 just308 的回复:
是DELPHI的,难道不能调用C#开发的程序?只要实现他们的界面上点击一个按钮然后就弹出我开发的界面程序就行了


如果只是这种简单的交互,那么就不用考虑什么平台的差别问题了。它们可以通过shell/dos跨进程地启动你的程序,同时传送参数。你的程序只要解析命令行参数即可。

#7


引用 6 楼 sp1234 的回复:
Quote: 引用 4 楼 just308 的回复:

是DELPHI的,难道不能调用C#开发的程序?只要实现他们的界面上点击一个按钮然后就弹出我开发的界面程序就行了


如果只是这种简单的交互,那么就不用考虑什么平台的差别问题了。它们可以通过shell/dos跨进程地启动你的程序,同时传送参数。你的程序只要解析命令行参数即可。
是啊,都没什么通信的,只是他们单击一下按钮,然后开始运行我的界面,我的程序是独立的功能,那我要把我开发的程序怎么弄下给他们用呢?

#8


居然这么做,
你让他学习.net呀。

#9


直接让delphi用Winexe 或 shellExecute 的api去执行你的C#程序就可以了

#10


引用 7 楼 just308 的回复:
Quote: 引用 6 楼 sp1234 的回复:

Quote: 引用 4 楼 just308 的回复:

是DELPHI的,难道不能调用C#开发的程序?只要实现他们的界面上点击一个按钮然后就弹出我开发的界面程序就行了


如果只是这种简单的交互,那么就不用考虑什么平台的差别问题了。它们可以通过shell/dos跨进程地启动你的程序,同时传送参数。你的程序只要解析命令行参数即可。
是啊,都没什么通信的,只是他们单击一下按钮,然后开始运行我的界面,我的程序是独立的功能,那我要把我开发的程序怎么弄下给他们用呢?


不用弄上什么啊。它们的dephi程序应该自动启动执行你的.exe文件,包括可以使用命令行参数传递数据。这跟你的.net编程没有半点关系,这是windows/dos的规范。如果这个“调用.exe”都不会,它们就也别去编写什么dephi程序了。

#11


给你举个c#的例子(delphi的代码我们不写)

比如说要打开 notepad.exe 程序,我们可以写
System.Diagnostics.Process.Start("notepad.exe");


比如说要用它打开 c:\test\x1.txt 文件,可以写
System.Diagnostics.Process.Start("notepad.exe","c:\\test\\x1.txt");


比如说我们要阻塞等待 notepad.exe 程序执行完毕,我们可以写
System.Diagnostics.Process.Start("notepad.exe").WaitForExit();

#12


在Delphi里面写
Winexec('c:\xxx\你的程序.exe')

#13


C#这里打开VS按Ctrl+f5,在bin/debug中找到exe。