2011-09-23 65 views
0

我有一个C++程序(Test.exe),其中包含N(作为命令行参数传递)并生成写入文本文件的N矩形的坐标。从C调用C++程序的问题#

我已经通过命令行和Visual Studio测试了这个文件,并且在两种情况下文件都是用期望的输出写入的。

在C#程序中,我在一个文本框中输入ñ,点击一个按钮,我的事件代码如下:

​​

的文件不会被写入将Test.exe。

有关为什么Test.exe在C#程序中调用时不写入文件的任何建议?

发现问题 该文件被写入其中的C#程序从不会从C++程序位于何处执行的目录。

回答

2

我猜你忘了p.WaitForExit()p.Start()行。

+1

StartInfo.WorkingDirectory也是一个很好的候选人。默认很少可写。 –

+0

即使使用p.WaitForExit(),也不会写入文件 –

2

两点:

  1. 确保的Test.exeStartInfo.WorkingDirectory)的工作目录设置到该工艺具有写权限的目录,并
  2. 如果Test.exe需要过程高度,使用StartInfo.UseShellExecute = trueStartInfo.Verb = "runas"到开始一个升级过程。你的C#程序需要是一个高级的过程来完成这一点,你可以使用一个应用程序清单文件。