如何使用c#连接C ++ DLL

时间:2016-08-26 06:34:10

标签: c# c++

使用C#调用C ++ DLL的函数时遇到问题? 我有一个C ++ DLL,其功能如下所示

 int getresult ( char *a, int *b, char *c, int *d)

在这里,我需要将值传递给参数a和参数b,然后我将返回参数c和参数d中的结果。

我能够使用C#从函数中获取返回值,但不能获取cd值。这里是我使用的C#代码:

namespace Test
{
class Program
{
    [DllImport(@"C:\test.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Auto)]
    public static extern int getresult(string a, int b, out string c, out int d);
    static void Main(string[] args)
    {
        int i;
        string a = "1234test123";
        string c;
        int b = 11;
        int d;
        try
        {
            i = getresult(a, b, out c, out d);
            if (c != null)
            {
                Console.WriteLine("i " + i + " c= " + c);
            }
            Console.WriteLine("Completed");
            Console.ReadLine();
        }
        catch (Exception ex)
        {
            Console.WriteLine("Error " + ex.Message);
            Console.ReadLine();
        }
    }
}

}

有人可以帮我解决这个问题吗?

0 个答案:

没有答案