我有两个项目的解决方案:C# prj which is 64bit compiled C prj 32bit主函数应该在C项目中,但我需要调用C# prj中的方法,有没有办法做到这一点?我尝试了这里发布的示例(dllExport),但没有什么可做的...谢谢,Marco
fv2wmkja1#
你可以让C#项目成为一个控制台应用程序,然后在你的主项目上将C#控制台的输出和输入重定向到C项目(可能需要异步),之后你可以从你的原始项目中调用和隐藏控制台提示符,并发送输入+发送输出!C#示例(C#运行C++控制台提示符):
string Path = "C:\\Users\\noobz\\Desktop\\Task_1\\c.exe"; char[] buffer = new char[100]; string final = "NotFound"; Process proc = new Process(); proc.StartInfo.FileName = Path; proc.StartInfo.UseShellExecute = false; proc.StartInfo.RedirectStandardInput = true; proc.StartInfo.RedirectStandardOutput = true; proc.EnableRaisingEvents = true; proc.StartInfo.CreateNoWindow = false; // <--- You might want to edit this line do { proc.Start(); final = GenerateString(); proc.StandardInput.WriteLine(final); await proc.StandardOutput.ReadAsync(buffer, 0, 100); Console.WriteLine(final); } while (buffer[29] == 'I');
1条答案
按热度按时间fv2wmkja1#
你可以让C#项目成为一个控制台应用程序,然后在你的主项目上将C#控制台的输出和输入重定向到C项目(可能需要异步),之后你可以从你的原始项目中调用和隐藏控制台提示符,并发送输入+发送输出!
C#示例(C#运行C++控制台提示符):