如何在C项目中调用C#方法

jyztefdp  于 2023-06-27  发布在  C#
关注(0)|答案(1)|浏览(255)

我有两个项目的解决方案:C# prj which is 64bit compiled C prj 32bit
主函数应该在C项目中,但我需要调用C# prj中的方法,有没有办法做到这一点?
我尝试了这里发布的示例(dllExport),但没有什么可做的...谢谢,Marco

fv2wmkja

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');

相关问题