调用jlin程序 C# Process调用程序 重定向输出没反应 20C

用C#调用java ,命令行参数填写的是-jar "BC.jar"
打开C#程序以后,jar被成功启动,也有了输出
但是在输入处一直有一个>符号,导致我输入命令到java程序以后,重定向的输出没了反应
我的程序代码为:

 static void Main(string[] args)
        {
            Process p = new Process();
            p.StartInfo.FileName = "java";                      //要执行的程序名称 
            p.StartInfo.UseShellExecute = false;              //不使用WindowsShell
            p.StartInfo.RedirectStandardInput = true;         //可能接受来自调用程序的输入信息 
            p.StartInfo.RedirectStandardOutput = true;        //由调用程序获取输出信息 
            p.StartInfo.RedirectStandardError = true;         //错误输出重定向
            p.StartInfo.CreateNoWindow = false;                //不显示程序窗口
            p.StartInfo.Arguments = "-jar BC.jar";
            p.StartInfo.WorkingDirectory = @"C:\Users\姬逍遥\Desktop\BC";
            p.Start();
            Task T = new Task(new Action(() =>
            {
                while (!p.HasExited)
                {
                    Console.Write(new char[] { (char)p.StandardOutput.Read() });
                }
            }));
            T.Start();
            while (!p.HasExited)
            {
                List<char> a = new List<char>();
                char Last = ' ';
                while (Last != '\r')
                {
                    a.Add((char)Console.Read());
                    Last = a.Last();
                }
                p.StandardInput.Write(a.ToArray());
            }
        }

Java代码:
图片说明
最后运行C#程序输入命令:
图片说明
发现卡在了读取那一步,代表直接没输出了:
图片说明
该java程序在cmd下运行是这样子的:
图片说明
这是那个jar:https://yivesmirror.com/files/bungeecord/BungeeCord-1287.jar
是一个MineCraft服务端核心,可能是jline输出,请问c#如何在不更改目标程序任何代码情况下解决此问题,不要谈什么winAPI读写dos窗体,太笨重。

4个回答

先抛开C#不谈,你用命令行运行
java -jar "BC.jar" > x:\path\output.txt
则output.txt有正确输出没有

qq_35457839
qq_35457839 这个Java程序本来就可以运行啊,用cmd执行Java -jar BC.jar就可以啊 但是到了c#以后process调用Java加参数或者cmd执行Java命令都不行
一年多之前 回复

错误信息应该提示得很明显,使用netstat看下25577是否被占用,换个端口或杀掉进程就行了

qq_35457839
qq_35457839 我现在问题是cmd可以正常使用的到了process重定向输入输出就不行了
一年多之前 回复

你用错了。示例程序如下,直接新建一个控制台程序,全部复制,粘贴进去运行就可以。

using System;
using System.Diagnostics;
using System.Text;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            var ps = new ProcessStartInfo("cmd.exe", "/c \"ping 127.0.0.1\"")
            {
                RedirectStandardError = true,
                RedirectStandardInput = true,
                RedirectStandardOutput=true,
                UseShellExecute = false,//必须是false,意思是是否用系统shell运行,也就是cmd.exe来执行这个程序。用了就没法重定向输入输出了。所以,不用
            };
            var p = Process.Start(ps);
            var outputStr=new StringBuilder();
            if (p != null)
            {
                if (!p.HasExited)
                {
                    p.OutputDataReceived += (e, o) => outputStr.AppendLine(o.Data);
                    p.ErrorDataReceived += (e, o) => outputStr.AppendLine(o.Data);
                    p.BeginErrorReadLine();//开始按行读错误输出
                    p.BeginOutputReadLine();//开始按行读正常输出
                    //p.StandardInput.WriteLineAsync("^C");//如果要输入命令,可以在这里输入
                    p.WaitForExit();//等结束就可以了。有输出会自动调用前面的事件。
                }
                else
                {
                    p.StandardOutput.ReadToEnd();
                }

                Console.WriteLine("运行成功!");
                Console.WriteLine("输出:\r\n"+outputStr.ToString());
            }
            else
            {
                Console.WriteLine("运行失败!");
            }

            Console.ReadLine();

        }
    }
}

运行结果如下

运行成功!
输出:

正在 Ping 127.0.0.1 具有 32 字节的数据:
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=128
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=128
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=128
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=128

127.0.0.1 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 0ms,最长 = 0ms,平均 = 0ms

另外,要输入命令的话,要WriteLine,一般的命令,都要回车的。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
利用Process调用的程序,不能输入及输出
1、我做的是一个编译器,当编译完成后,我想通过编译器调用编译出来的EXE文件,运行给用户看。rn2、编译出来的EXE文件只有CMD窗口那样的界面,当直接双击运行时,能进行输入与输出。rn 当我用C#的Process调用编译出来的EXE文件,则界面卡住,无法发进行输入输出。rn3、我调用编译出来的EXE文件代码如下:rn Process p = new Process();rn p.StartInfo.FileName = System.IO.Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName) + "\\bin\\test.exe";rn p.Start();rn p.WaitForExit();rn p.Close();rn4、用3中同样的代码,把p.StartInfo.FileName 的值改为"cmd.exe"是能正常输入输出的。rn
Process调用exe程序的问题
我的程序如下,需调用exe程序,同时需输入参数,此程序需处理一段时间,但总是运行到一段时间就停止了rnProcess p=new Process();rn p.StartInfo.FileName="ffmpeg.exe";rn p.StartInfo.Arguments=" -i cehua.wmv -ab 56 -ar 22050 -b 500 -r 15 -s 320*240 asf.flv";rn p.StartInfo.UseShellExecute = false; rn p.StartInfo.RedirectStandardInput = true;rn p.StartInfo.RedirectStandardOutput = true; rn p.StartInfo.RedirectStandardError = true;rn p.StartInfo.CreateNoWindow = true;rn if(p.Start())rn rn p.WaitForExit();rn
C# 调用Exe程序 重定向输入输出文件
如题,C#怎么调用一个可执行程序,这个可执行程序的输入,是从一个文件中读入,输出至一个文件。如,调用[color=#FF0000]D:\a.exe[/color],输入文件为[color=#FF0000]D:\a.in[/color],输出至[color=#FF0000]D:\a.out[/color],求高手解答啊,不要Copy的那种啊。。。谢谢高手们了。
c#程序调用c++dll
最近用dll封装qq游戏大厅的接口,供c#程序调用。封装dll大同小异,也什么问题,问题出在c++和c#间传递的参数问题。 1 参数对应,网上很多,我用的是const char* 与 string进行对应,直接用json格式进行解析和封装 2 主要问题出先在回调函数上,调用后总是崩溃报错 Run-Time Check Failure #0 - The value of ESP was not
c# 程序调用
想调用一个exe程序rn这个程序并不是我编写的rnrn现在能够调用成功了rn但因为这个程序是个窗口程序rnrn1.要点击上面的ok键 才能执行结果 问如何让他自动执行!rnrnrn2.这个程序窗口怎样才能够 隐藏起来?rn start.CreateNoWindow = true;rn start.UseShellExecute = false;rn start.WindowStyle = ProcessWindowStyle.Hidden;rn用这些代码也是无效的!!! 为什么????
C# 程序调用matlab
之前用matlab做了一个图,是用的contour函数,公司现在要求用C#程序做出相同的图来,但是我看不懂matlab中的contour函数,还原不出contour的计算公式。rn不知道有没有大神可以看懂contour函数并知道它里面的计算公式。rn然后matlab中的函数式是不是可以生成DLL啊?,就是可以让C#直接调用的那种。rnrn麻烦各位帮帮忙,对问题描述不明白的地方请指出,我再细说。
C#调用摄像头程序
利用C#调用笔记本自带摄像头或者外置摄像头程序说明,可实现简单的摄像头监控界面。
C#调用C程序
使用C#调用C程序
C#调用.NET程序。
webbrowser浏览网页达到近万次的时候内存占用严重。rn试了多种释放内存方法,都不行。rn重新创建webbrowser,也不行。rn哪位高人有更好办法?rnrnrn我现在唯一能用的方法就是单独做一个.exe程序,程序每次调用该进程,再关闭,这样肯定释放的彻底了。rn初次接触winform程序,有几点不懂。rn调用我的方法是:rn [code=C#]System.Diagnostics.Process exep = System.Diagnostics.Process.Start("如何使用绝对路径?");rn[/code]rn缺点是:调用360容易拦截;rn问题是:rn1、还有更好的调用方法吗?rn2、如何判断进程已经在运行中?rn3、如何避免360等软件拦截?rn4、我那个.EXE程序需要传参和接参,该如何做,请给出具体代码,谢谢?rn5、我不想用户直接能打开该.exe程序,代码?rnrnrnrn问的比较多,都不难阿,给出具体代码,谢谢啦,散分了100分!~~~
c#调用压缩程序
我想实现鼠标选定几个文件,然后点击一个按钮,自动调用ZIP,或是rar压缩程序,把几个文件压缩成一个文件
C#调用C++的程序
这两天公司给了一个新项目,要为USB以太网服务器(BT-3000GB)写一个切换程序,其实它本身是带了一个虚拟软件,但是不能满足公司的需求,所以要重新自己开发一款。于是参照着源码来进行开发,无奈源码是c++开发的,对我来说,有些晦涩难懂,于是乎,想出来一个方式,就是用c#补充为满足的要求,其他的功能还是保留c++的,在c#中调用c++的动态dll,开发中面临着很多问题,接下来会与大家分享。 1.
C# 调用其他程序
本来是在写微信跳一跳辅助要用到adb,所以才想要调用其他EXE。刚好最近要写一个切换Keil主题的小程序,想不到又要用到这个小东西...想想不如直接拿出来,也好之后再用。 代码: public class ExeRnuuer { /// /// 执行cmd命令 /// 多命令请使用批处理命令连接符: /
C# 调用指定的程序
C# 调用指定的程序C# 调用指定的程序C# 调用指定的程序C# 调用指定的程序C# 调用指定的程序C# 调用指定的程序
C#播放音乐,调用程序
一:C# 播放音乐 引入命名空间: using System.Media;   用法: string sound = Application.StartupPath + "/sound/msg.wav"; //Application.StartupPath:程序exe所在的位置,也可以直接写一个音乐的路径 SoundPlayer player = new Sound
C#调用C++程序
分享给有需要的人,代码质量勿喷。 C++程序放在bin文件夹下面 string pExePath = string.Format(@"{0}\Filter.exe", Application.StartupPath); Process pProcess = new Process(); pProcess.StartInfo.FileName = pExePath; pProcess.Sta...
C# 有关程序调用
现有2个程序 A和B,程序B必须通过程序A去调用才能运行,而程序B不能直接双击去单独运行~~~~~这样子的话,程序B里面应该怎样写代码,才能做到这个效果啊????各位高手!!!
C#调用屏幕保护程序
程序主要是利用Windows API函数,通过学习本程序可以通晓如何调用Windows API函数在C#中。
C# 调用 摄像头程序
使用 C#窗体程序 调用 笔记本电脑自带摄像头, 完整程序, 测试电脑为lenovo B450
Process调用本地程序产生的异常问题
如果他所调用的程序发生了内存错误,我用什么异常类可以捕捉到?rn并且安全的关闭出错的process
MSSQL 程序调用存储过程 执行到command.ExecuteNonQuery()没反应
程序调用存储过程 执行到command.ExecuteNonQuery()时没反应了 停在那里一直运行状态 检查发现存储过程加上下面一段:rn rnDECLARE IMPDataCheck_Cursor CURSOR FOR --声明游标rn select rn ID,Name,Sex rn from EX..ArnOPEN IMPDataCheck_Cursor --开启游标rnrnFETCH NEXT FROM IMPDataCheck_Cursor --循环读取游标数据rn into @ID,@Name,@Sexrn WHILE @@FETCH_STATUS = 0rn set @errorMsg=''rn if(@Name='' or @Name is NULL or DATALENGTH(@Name)/LEN(@Name)<>2)rn set @errorMsg='姓名格式错误'rn rnrn if(@errorMsg<>'')rn INSERT INTO EX..Err_Log values(@ID,@errorMsg)rn rnCLOSE IMPDataCheck_Cursor --关闭游标rnDEALLOCATE IMPDataCheck_Cursor --释放游标rnrnrn加上这一段就不行了 注释掉就OK 请问下是怎么回事
c# 调用外部程序,Process初体验
很稳定的,我已经测试过! /// 执行DOS命令 /// </summary> ///// <param name="FtpIP">测试端IP</param> ///// <returns></returns> //public static void GetPrecess(string FtpIP) //{ // Process p = new Process(); // p.StartInfo.FileName = "cmd.exe"; // p.StartInfo.UseShellExecute = false; // p.StartInfo.RedirectStandardInput = true; // p.StartInfo.RedirectStandardOutput = true; // p.StartInfo.RedirectStandardError = true; // p.StartInfo.CreateNoWindow = true;
如何使用Runtime.exec重定向本地程序调用
如果我在linux下调用的是“*.sh”文件,目录结构是“/root/work”,输入参数是三个字符串“aaa,bbb,ccc”输出参数是“0”或“1” 那我应该怎么写java代码! 期待着您们的解答 !flyzl@mail.banner.com.cn
C#程序中调用其他程序出现问题
我在程序A中想调用程序B (也是用C#编写的)rn它老是提示说 异常 System.ArgumentException 在程序B.exe中发生rn请问是怎么回事啊?rnrnProcessStartInfo wzq=new ProcessStartInfo();rnwzq.FileName="B.exe";rn//wzq.Arguments= 是不是要对他进行赋值啊?rnrn谢谢!
C#程序中如何调用其他程序
写一个程序,当满足某一条件时,把外部程序A关闭,在开启,rn怎么做呢?在程序里如何调用?请写点代码出来哦。谢谢大家!
使用C#程序调用word程序
我写了一段代码希望能够在C#WinForm中调用某个doc文件,当doc结束后继续进行,但执行效果不好。代码如下:rn System.Diagnostics.Process proc = new System.Diagnostics.Process();rn proc.StartInfo.FileName = @"winword.exe"; //程序名称 rn proc.StartInfo.Arguments = @" c:\1.doc "; rnrn tryrn rn proc.Start();rn proc.WaitForExit();rn rn catch(System.Exception exp)rn rn string err = exp.Message;rn rn rn proc = System.Diagnostics.Process.Start(@"c:\1.doc");rnrn当word运行之后,程序直接运行了下面的代码,没有等待进程关闭。请诸位高手指点。rn
C#程序如何调用Python程序?
我的项目中有一个用C#写的分析软件和一个用Python写的爬取软件。rn我需要在C#程序中调用Python程序,其实操作也很简单。rn[color=#FF0000][b][u]分析器开启时把爬取器开启,分析器关闭时将爬取器关闭[/u][/b][/color],不需带什么参数不需传值。rn网上搜到C#调用Python的方法有俩,一是打包Python为exe文件被C#直接调用rn二是在C#中安装IronPython解析器动态调用。rn也考虑过planC用批处理,可我没接触过感觉不能实现分析器关闭时关闭爬取器。rn考虑到比起方法二,方法一不需要用户在自己的电脑上配置Python环境,rn我是学生,Python、C#都是初学,怕方法二略复杂会有很多未预知的问题要解决。rn毕竟我爬取器中import了os、sys、url lib、urllib2、cookie lib、base64、codecs、re、hash lib、json、rsa、binascii、time、socket、random、mysqldb模块。rnrn因此决定用方法一,现在Python已打包好,放在任何一台电脑上都可双击exe运行。rn可是C#中就是调用出错,一运行就秒退,调用代码如下:(按网上教程融会贯通的)rn[code=csharp]class ControlPythonrnrn public void startexe()rn rn Process usepy = new Process();rn string path = "\"" + System.AppDomain.CurrentDomain.SetupInformation.ApplicationBasern + "\\pyproject.exe" + "\"";rn usepy.StartInfo.FileName = @"python";rn usepy.StartInfo.Arguments = path;rn usepy.StartInfo.UseShellExecute = false;rn usepy.StartInfo.RedirectStandardOutput = true;rn usepy.StartInfo.RedirectStandardInput = true;rn usepy.StartInfo.RedirectStandardError = true;rn usepy.StartInfo.CreateNoWindow = false;rn usepy.OutputDataReceived += (sender, args) => Console.WriteLine("received output: 0", args.Data);rn usepy.Start();rn sepy.BeginOutputReadLine();rn Console.ReadLine();rn rn[/code]rn[color=#FF0000][b][u]请问这问题可以怎么解决?[/u][/b][/color]对于秒退,有没有办法查看输出了什么错误信息?rn要是用方法二,感觉要很多地方改动,可否直接指点下我可以怎么弄?rn其实我也不知道是哪里出了问题(C# or Py ?),但是打包好的exe直接双击能用。rn网上对于C#调用Python的资料少之又少,多数论坛的py版块都很冷清...实在是黔驴技穷了。rn运行环境Windows7 Python版本2.7.9 学校的deadline已到...跪下来问了。rnrn最后感谢看完的大神们,能回答的话感激不尽呐~
C#程序调用VC++程序动态库
C#程序调用VC++程序动态库,使得不同语言之间的程序调用更为便捷
C# 调用外部EXE程序
 private void CheckDaily()         {             while (true)             {                 //判断一下时间  59                    if(DateTime.Now.Minute==59)                  {                      //是59  调...
基于C#语言的程序调用
  由于叶绿素反演系统并不是我一个人的成果,未经队友们的同意,无法上传相关代码,因此对C#+AE构建系统的相关介绍就到这里,接下来为大家提供一些我初学C#时觉得比较有意思的代码。此篇文章为大家介绍下如何给予C#语言对程序进行嵌套调用。代码不长,也不难,但重在理解,本程序是基于VS的窗体实现,其布局如下,主要由一个groupBox容器、两个Button、一个OpenFileDialog和一个用于显示...
C# 调用第三方程序,发送消息
背景:启动第三方登录程序,并补全账号和密码消息; 工具:spy++,获取第三方登录窗体的句柄、标题等; 引用API:  //根据窗体名称获取窗体 [DllImport(&quot;user32.dll&quot;, EntryPoint = &quot;FindWindow&quot;)] public extern static IntPtr FindWindow(string lpClassName, string lpWin...
用C#程序调用java程序
开启一个进程去运行java程序  private void RunDBT()         {             var pInfo = new ProcessStartInfo()             {                 RedirectStandardOutput = true,                 RedirectStandardError
C# 调用exe程序总结
已经很久没有更新博客,以后关于个人或者团队在实际中遇到的问题在这里做个记录。 先总结一下C#调用执行exe程序,简单直接上代码 Thread worker = new Thread(delegate () { System.Diagnostics.Process p = new System.Diagnostics.Process(); ...
C#调用C++(dll)程序
使用C#.net编写一个软件,其需要调用基于C++的opencv的库,需要中间有一个dll文件连接,这个文件就是一个C#调用c++的dll的demo。
外部方法的调用C#程序
外部方法的调用C#程序
事务在C#程序中的调用
此例程主要演示的是事务的应用,环境是VS2010
MFC 程序调用C#的dll
首先,我不知道MFC能不能直接调用C#的dll,我看一些资料说要把dll注册为com组件才行,不明白rn然后,按照网上的做法:rn一、使用 /clr 编译 MFC 可执行文件或规则 DLL.rnrn  1、打开“项目属性”对话框,方法是右键单击“解决方案资源管理器”中的项目并选择“属性”。rn rn  2、展开“配置属性”旁边的节点并选择“常规”。在右侧窗格中的“项目默认值”下,将“公共语言运行库支持”设置为“公共语言运行库支持 (/clr)”。rn rn  3、在相同的窗格中,确保将“MFC 的使用”设置为“在共享 DLL 中使用 MFC”。rn rn  4、在“配置属性”下,展开“C/C++”旁边的节点并选择“常规”。请确保将“调试信息格式”设置为“程序数据库 /Zi”(而不是“/ZI”)。rn rn  5、在“配置属性”下,选择“C/C++”,然后选择“代码生成”。请确保将“运行时库”设置为“多线程调试 DLL (/MDd)”或“多线程 DLL (/MD)”之一。rn rn  二、在代码引用需要的dll.rnrn  #using .rnrn   #using "DownloaFiles.dll" //换成需要的dll文件。rn rn  using namespace System;rn rn  using namespace ADMessage_test;//换成dll中类所使用的namespace.rnrn  三、在dll函数调用代码前加入#pragma managedrnrn  这是manage和unmanage混合编程在MFC下的一种实现方式。rnrn在做完步骤一:一、使用 /clr 编译 MFC 可执行文件或规则 DLL.以后,在运行MFC程序,出现错误:rn命令行 error D8016: “/clr”和“/Gm”命令行选项不兼容rnrn在release下运行则出现错误:fatal error C1190: 托管目标代码需要“/clr”选项rn请问这是怎么回事
C# 调用另外一个程序
有两个Windows窗体应用程序项目,A、Brnrn现在需要程序A在某个功能中,调用B,并希望得到B处理后的某个信息rnrn涉及C/S不多,不知道哪个方式合适rnrn1、把程序B也COPY一份,放到A文件夹里面rnProcess的方式,去启动程序B,然后B处理后,把信息存在某个位置,A等待B结束后去获取rnrn2、cmd的方式,类似上面rnrn3、把B的窗体独立出一个项目来,然后一个单独的输出项目,单独的窗体B作为类库也可供A引用rnrn或者其他更合适的方式rnrn望各位大虾指导!
C# 调用外部exe程序
有时候dll不能引用,那就只能另外做一个exe程序,然后通过调用这个程序就可以解决问题,但往往需要在本地生成一个中间数据。虽然有name一点麻烦,但也挺好用。 这里就是一个调用外部程序的方法。 /// &amp;lt;summary&amp;gt; /// 通过进程调用外部程序 /// &amp;lt;/summary&amp;gt; /// &amp;lt;param name=&quot;exePath&quot;&amp;gt;&amp;lt;/p...
关于C#调用C++程序
我有个C++写的DLL,并提供了.H文件。 其中有个东东在H文件中的定义是这样的:rn/* rn * typedef: rn * PemnCommHandlern *------------------------------------------------------------------rn * Description:rn * Communication handle to the agent/PEM returned by PemnOpenrn * This handle is used with all subsequent call to the agent (e.grn * PemnSend, PemnReceive).rn *------------------------------------------------------------------ rn */rntypedef void *PemnCommHandle;rnrnrn使用这个东东的方法定义如下:rn/*rn * Function: rn * PemnOpenrn *------------------------------------------------------------------rn * Purpose : rn * Open a connection to a PATROL agent.rn * The caller specifies the host name and port number. For otherrn * communication attributes see PemnSet/GetCommAttributes below.rn *rn * When the connection is opened successfully the OpenCallback is called.rn * If the connection could not be opened then CloseCall back is called.rn *rn * IMPORTANT pOpenCallback should call the PemnSendIdentity()rn * immediatly to authenticate the connection. (V31*)rn *------------------------------------------------------------------rn * Arguments:rn * iPort - port number of the agent/PEMrn * pcRemoteHost - Host name of the agent/PEM.rn * pCloseCallback, pOpenCallback - PEM API calls thesern * routines when the connection with agent/PEM is closed/openedrn * pCloseClientData, pOpenClientData - The PEM API passes rn * pCloseClientData (resp. pOpenClientData) rn * when calling pCloseCallback (resp. pOpenCallback).rn * phComm - address in the application of the variable which rn * will holds the communication handles.rn * The PEM API store internally the address of where to rn * return the Comm. handler.rn *rn * THE VARIABLE HOLDING THIS COMMUNICATIONrn * HANDLE SHOULD BE A STATIC VARIABLE IN THE PROGRAM.rn * rn */rnDLL_IMPORT void PemnOpen(rn int iPort,rn char *pcRemoteHost,rn PemnCommCallback pCloseCallback,rn PemnClientData pCloseClientData, rn PemnCommCallback pOpenCallback,rn PemnClientData pOpenClientData,rn PemnCommHandle *phComm rn );rnrnrn而我的C#调用代码如下:rnrn public delegate void PemnCommHandle();rnrn [DllImport("pemapi.dll", CallingConvention = CallingConvention.Cdecl)]rn public static extern string PemnBOpen(rn PemnCommHandle phComm,rn string pcHostName,rn int iPort,rn string pcUserName,rn string pcEncryptedPassword,rn int iMaxRetry,rn PemnBDisconnectCallback pDisconnectCallback,rn PemnClientData pClientDatarn );rnrn public void Temp() rn rn Console.WriteLine("PemnCommHandle被调用。");rn rnrnrn PemnCommHandle pHandle = new PemnCommHandle(Temp);rn strOpenResult = PemnBOpen(pHandle, "10.10.198.12", 3181, "patrol", sbEncryptedPwd.ToString(), 1, pCallBack, null);rnrn我想问下:rnrn1. PemnCommHandle 是函数指针么? rnrn2. 我写的C#代码写得对吗,PemnCommHandle对我的程序没什么意义嘛
C#怎样调用VC程序?
C#怎样调用VC编写的可执行程序(*.exe)?
相关热词 c# stream 复制 android c# c#监测窗口句柄 c# md5 引用 c# 判断tabtip 自己写个浏览器程序c# c# 字符串变成整数数组 c#语言编程写出一个方法 c# 转盘抽奖 c#选中treeview