使用C#调用C ++ DLL的函数时遇到问题? 我有一个C ++ DLL,其功能如下所示
int getresult ( char *a, int *b, char *c, int *d)
在这里,我需要将值传递给参数a
和参数b
,然后我将返回参数c
和参数d
中的结果。
我能够使用C#从函数中获取返回值,但不能获取c
和d
值。这里是我使用的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();
}
}
}
}
有人可以帮我解决这个问题吗?